{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "# 第 1 节　含有单个连续型解释变量的模型（一元回归）\n",
    "## 第 5 章　正态线性模型｜用 Python 动手学统计学"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 1. 环境准备"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "outputs": [],
   "source": [
    "# 用于数值计算的库\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "# 用于绘图的库\n",
    "from matplotlib import pyplot as plt\n",
    "from scipy import stats\n",
    "\n",
    "sns.set()\n",
    "\n",
    "# 用于估计统计模型的库 (部分版本会报出警告信息)\n",
    "import statsmodels.formula.api as smf\n",
    "import statsmodels.api as sm\n",
    "\n",
    "# 设置浮点数打印精度\n",
    "%precision 3\n",
    "# 在 Jupyter Notebook 里显示图形\n",
    "%matplotlib inline"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:26:01.990549Z",
     "end_time": "2024-04-16T20:26:12.660710Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 2. 实现：读入数据并绘制其图形"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "outputs": [
    {
     "data": {
      "text/plain": "   beer  temperature\n0  45.3         20.5\n1  59.3         25.0\n2  40.4         10.0\n3  38.0         26.9\n4  37.0         15.8",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>beer</th>\n      <th>temperature</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>45.3</td>\n      <td>20.5</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>59.3</td>\n      <td>25.0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>40.4</td>\n      <td>10.0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>38.0</td>\n      <td>26.9</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>37.0</td>\n      <td>15.8</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读入数据\n",
    "beer = pd.read_csv(\"5-1-1-beer.csv\")\n",
    "beer.head()"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:26:26.573179Z",
     "end_time": "2024-04-16T20:26:26.598479Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Python310\\lib\\site-packages\\seaborn\\_oldcore.py:1498: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n",
      "  if pd.api.types.is_categorical_dtype(vector):\n",
      "C:\\Python310\\lib\\site-packages\\seaborn\\_oldcore.py:1498: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n",
      "  if pd.api.types.is_categorical_dtype(vector):\n",
      "C:\\Python310\\lib\\site-packages\\seaborn\\_oldcore.py:1498: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n",
      "  if pd.api.types.is_categorical_dtype(vector):\n",
      "C:\\Python310\\lib\\site-packages\\seaborn\\_oldcore.py:1498: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n",
      "  if pd.api.types.is_categorical_dtype(vector):\n",
      "C:\\Python310\\lib\\site-packages\\seaborn\\_oldcore.py:1498: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n",
      "  if pd.api.types.is_categorical_dtype(vector):\n",
      "C:\\Python310\\lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
      "  with pd.option_context('mode.use_inf_as_na', True):\n",
      "C:\\Python310\\lib\\site-packages\\seaborn\\_oldcore.py:1498: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n",
      "  if pd.api.types.is_categorical_dtype(vector):\n",
      "C:\\Python310\\lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
      "  with pd.option_context('mode.use_inf_as_na', True):\n"
     ]
    },
    {
     "data": {
      "text/plain": "<seaborn.axisgrid.JointGrid at 0x22444abf1c0>"
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": "<Figure size 600x600 with 3 Axes>",
      "image/png": "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aHq/fv20Y8cOVVRU1E774IMPFBsbW+d7AQAAQhERYWjHjh3q1atXnek33nijkpOT9cADD2jnzp167bXX9PTTTys7O1tOp9OASgEAgNlERBg6duxY7Rlk39a2bVstW7ZM1dXVGjFihGbPnq077rhDEyZMCH+RAADAlCLiAOpnn332nPPS0tK0YsWKMFYDAACsJCL2DAEAABiFMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACwtIk6tBwAAoenWLU02W9OWSUtLa51iohRhCACAKBUIBPToo4+EtKzf37Q73ZsZYQgAgChls9mUn/+sDh061KTlOnfurJycX7RSVdGHMAQAQBTbvHmzioqKmrRMz549CUPfwgHUAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0mKMLgAAgGjh81WqrKxEXm+54uPdio9PkNMZa3RZaCb2DAEA0AgVFcXKzh6lzMwMDRw4UBkZlys7e5QqKoqNLg3NRBgCAKABPl+lcnNzVFhYGDS9sLBQubk58vkqDaoMLYEwBABAA8rKSuoEoRqFhYUqKysJc0VoSYQhAAAa4PWWNzDfG6ZK0BoIQwAANMDlim9gvitMlaA1EIYAAGiA250oj8dT7zyPxyO3OzHMFaElEYYAAGiA0xmrvLz8OoHI4/EoL6+A0+ujHNcZAgCgEeLikrRixeqvrzPklcvlktudSBAygYgIQ+vXr1dBQYG++OILde3aVffdd59uvvlmSdJvf/tbLVq0qM4yu3btCnOVAACrczpjlZISq5QUoytBSzI8DP3pT3/SjBkz9PDDD+vaa6/Vhg0bNHnyZHXq1ElZWVnatWuXbrnlFj344INGlwoAAEzI0DAUCAS0ePFi3X333brzzjslSePHj9fWrVv14YcfKisrS0VFRRoxYoSSk5ONLBUAAJiUoWFo3759+vLLLzVs2LCg6cuXL5ck+Xw+ff755+revbsR5QEAAAswPAxJ0okTJzR27Fjt2LFDF110kcaPH6/Bgwdrz5498vv92rhxo+bOnavTp0+rX79+evDBB5XSzAHbmJjWP5HO4bAH/RvNzNILfUQes/Rilj4k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o0cPTZ06VaNHjw5aZvv27ZKk9PT0cJYKAABMytAw1LNnTw0aNEi//vWvtWXLFhUVFWn69Onyer0aPXq0brrpJm3atElLly7VgQMH9NZbb+nhhx/W0KFD1aNHDyNLBwAAJmH42WRPP/20FixYoEmTJumrr77SVVddpeeff17f+9739L3vfU+LFi1SQUGBnn32WXXs2FHDhg3TAw88YHTZAADAJCLuAOpw8PurVVJS2erriYmxKyEhVqWllVE/pmuWXugj8pilF7P0IZmnl2jqIzk5tMvFhOvvWTRrzHPLxQkAAIClEYYAAIClEYYAAIClWfKYoUAgoOrq8LTtcNgj/mJfjWWWXugj8pilF7P0IZmnl2jpI9RbhnDMUMMac8yQJcMQAABADYbJAACApRGGAACApRGGAACApRGGAACApRGGAACApRGGAACApRGGAACApRGGAACApRGGAACApRGGAACApRGGAACApRGGAACApRGGAACApRGGWsmRI0fUq1evOo9169YZXVqj5efn66677gqa9umnn2rkyJG68sorNXjwYD333HMGVdd49fUxc+bMOttm8ODBBlV4bmVlZXr00Uc1aNAg9e3bVz//+c+1devW2vmbNm3Sbbfdpj59+ug//uM/tGHDBgOrPb+GehkzZkydbfLd7RYJiouL9eCDD2rAgAHKysrSuHHj9Nlnn9XOj6b3SEO9RMv75Nv27dunrKysoN+10bRNYIwYowswq507d6pt27Z67bXXZLPZaqd37NjRwKoa7/nnn9eiRYt01VVX1U4rLS3VmDFjNHjwYM2ePVvbtm3T7NmzFRsbq9tvv93Aas+tvj4kadeuXcrNzdXIkSNrpzkcjnCX16DJkyfr2LFjevrpp5WUlKQ1a9Zo7Nix+uMf/6hAIKCcnByNGTNGTz31lN58801NnTpViYmJuuaaa4wuvY7z9dK9e3ft2rVLjz32mG688cbaZdq0aWNgxfW79957VV1drYKCAsXGxmrx4sUaPXq0CgsLderUqah6j5yvl/bt20fN+6TGmTNnNGXKFJ04caJ2WjT+3kL4EYZaSVFRkbp166aUlBSjS2mSI0eOaNasWdq8ebO6desWNO/ll19WmzZtNGfOHMXExKhHjx7av3+/CgoKIu6Xyvn6CAQC2rNnj8aNG6fk5GRjCmyE/fv367333tMLL7yg73//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hCEAAGBphCEAAGBphCEAAGBphCEgwljt0l9W6xdA5CEMARHk9ddf17Rp04wuI2x2796tn//850aXAcDiYowuAMA3Vq1aZXQJYfXXv/5V//znP40uA4DFsWcIAABYGmEIiBB33XWXPvzwQ3344Yfq1auXNm/erLKyMj366KMaOHCgevfurREjRmjTpk1By/Xq1Uv/8z//o+nTp+v73/+++vfvr1//+tc6deqU/vu//1sDBgzQ1VdfrRkzZuj06dNBy/3ud7/TtGnTlJWVpYEDB2ru3LlB3yNJr732mm677Tb17t1bP/jBD/TrX/9aJ06cqJ2/ZMkS/fjHP9bSpUvVv39//fCHP1R5eblOnTqlBQsWyOPxKDMzU3379tWYMWP06aef1i63dOnS2lqWLFmigwcPqlevXlq3bl1QDdOnT9fgwYODnqspU6bo/vvv15VXXqkxY8ZIkk6fPq0nn3xS1113nTIzMzVs2DC9+uqrLbB1AJgZw2RAhJg1a5YefPDB2v+np6frzjvv1PHjxzVp0iSlpKRo7dq1uueee7Rs2TJdc801tcs+9dRTGjp0qJYuXaq//e1vWr16td59911deumlmj9/vrZt26YlS5bo4osv1j333FO73OLFi9WnTx8tWrRIn332mRYtWqRjx45p0aJFkqRXXnlFU6ZMqb1b+ZdffqmFCxdqz549WrlypWw2myTp3//+t9566y0tXLhQZWVlio+P1/3336+tW7dq8uTJ6tq1q/bv36/Fixfrl7/8pTZs2KD/+q//0uHDh/WHP/xBL730kjp16qSqqqpGP19/+ctf9JOf/ES//e1vVV1drUAgoHvvvVf/+Mc/dP/996tHjx76f//v/2nSpEny+Xy69dZbm7+RAJgSYQiIEOnp6YqLi5MkXXnllXr55Ze1c+dOvfzyy+rTp48kadCgQbrrrrs0f/58rV27NmjZOXPmSJL69++v3//+9zpz5ozmz5+vmJgY/fCHP9TGjRv1j3/8I2idiYmJysvLU0xMjK677jrZ7XbNmzdPEydOVPfu3TV//nxde+21mj9/fu0y3bp10+jRo/XWW2/p+uuvlyRVVVVp2rRpuuqqqyRJPp9PlZWVmjlzpoYMGVJbV0VFhZ544gkdP35cnTp1UqdOnWr7laSDBw82+vlq06aNZs+eLafTKUl677339M4772jhwoW167z22mt18uRJzZ8/X0OHDlVMDL/yANTFMBkQoTZt2qTk5GRlZGSoqqpKVVVV8vv9+tGPfqRPPvlE5eXltd+blZVV+3+Hw6GEhARlZGQE/fF3u9366quvgtYxbNiwoO+56aabJElbtmzR3r17dfjwYQ0ePLh2/VVVVerXr5/i4uL03nvvBf2syy67rPb/TqdTy5cv15AhQ3TkyBF98MEHevHFF/W3v/1N0tmw1Fzdu3evDULS2efLZrPpuuuuC6p38ODBOnbsmHbv3t3sdQIwJz4mARGqrKxMx44dU0ZGRr3zjx07pvj4eEmq3aP0bR06dGhwHampqUFfJyUlSZLKy8tVVlYmSZo9e7Zmz55dZ9mjR48GfR0bGxv09TvvvKPHH39ce/fuVWxsrC699NLamlri2kLfXV9ZWZkCgYD69u1b7/cfPXo0KLABQA3CEBChOnbsqG7dugUNUX3bRRdd1Ox1lJaWBn19/PhxSWeHz1wulyRp6tSp6t+/f51la4JYfQ4cOKB7771XN954o/Lz89WlSxfZbDY9//zzeuedd865XM0xSH6/P2j6tw/YPpeOHTuqQ4cOeu655+qdn5aW1uDPAGBNDJMBEcRu/+Yt2b9/fx06dEhJSUnq3bt37eO9997TsmXL5HA4mr2+N954I+jrjRs3ymazacCAAerevbuSkpJ08ODBoPWnpqZqwYIF2rFjxzl/7ieffKLTp09r3Lhx6tq1a23IqQlCNXuGvt2v9M0eriNHjtROO3PmjD7++OMGe+nfv79OnDihQCAQVG9RUZF+85vfNOngbADWwp4hIIK4XC7985//1KZNm/TjH/9Yv/vd7zRmzBjl5uaqc+fOev/99/Xss89q5MiRatOmTbPXt23bNk2ZMkW33HKLdu7cqSVLlmjEiBHq0qWLJGnSpEl69NFH5XA49KMf/Uher1f/5//8Hx05cuScw3eSao9Xeuqpp5SdnS2fz6d169bpzTfflPTNnp6avU9//vOf1adPH3Xp0kVZWVlas2aN0tLSFB8fr+eee06nTp1qcNjvuuuuU79+/TRhwgRNmDBBPXr00Mcff6xnnnlG1157rRITE5v9fAEwJ/YMARHkzjvvVJs2bfSLX/xCH374oZ5//nl9//vf11NPPaVf/OIXKiws1C9/+Us99NBDLbK+UaNGqaqqSvfdd5+ef/555ebmatasWbXz/+u//ksLFizQP/7xD+Xm5uqxxx7TRRddpDVr1tQGpvqkpaVpwYIFOnLkiMaPH69HH31UkrRmzRrZbDZt3bpVkuTxeNS7d29Nnz5dy5cvlyQ98cQTyszM1MyZM/XQQw8pIyNDo0aNarAXu92ugoIC/ed//qfy8/M1duxYvfjiixozZowWLlzYnKcJgMnZAtwlEbCkXr166b777tPEiRONLgUADMWeIQAAYGmEIQAAYGkMkwEAAEtjzxAAALA0whAAALA0whAAALA0whAAALA0whAAALA0whAAALA0whAAALA0whAAALC0/w8jCeKv5m/xwAAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制图像\n",
    "sns.jointplot(x=\"temperature\", y=\"beer\",\n",
    "              data=beer, color='black')"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:26:40.457596Z",
     "end_time": "2024-04-16T20:26:40.886898Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 4. 实现：使用 statsmodels 实现模型化"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "outputs": [],
   "source": [
    "# 建模\n",
    "lm_model = smf.ols(formula=\"beer ~ temperature\",\n",
    "                   data=beer).fit()"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:28:11.824132Z",
     "end_time": "2024-04-16T20:28:11.855466Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 5. 实现：打印估计结果并检验系数"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "outputs": [
    {
     "data": {
      "text/plain": "<class 'statsmodels.iolib.summary.Summary'>\n\"\"\"\n                            OLS Regression Results                            \n==============================================================================\nDep. Variable:                   beer   R-squared:                       0.504\nModel:                            OLS   Adj. R-squared:                  0.486\nMethod:                 Least Squares   F-statistic:                     28.45\nDate:                Tue, 16 Apr 2024   Prob (F-statistic):           1.11e-05\nTime:                        20:28:35   Log-Likelihood:                -102.45\nNo. Observations:                  30   AIC:                             208.9\nDf Residuals:                      28   BIC:                             211.7\nDf Model:                           1                                         \nCovariance Type:            nonrobust                                         \n===============================================================================\n                  coef    std err          t      P>|t|      [0.025      0.975]\n-------------------------------------------------------------------------------\nIntercept      34.6102      3.235     10.699      0.000      27.984      41.237\ntemperature     0.7654      0.144      5.334      0.000       0.471       1.059\n==============================================================================\nOmnibus:                        0.587   Durbin-Watson:                   1.960\nProb(Omnibus):                  0.746   Jarque-Bera (JB):                0.290\nSkew:                          -0.240   Prob(JB):                        0.865\nKurtosis:                       2.951   Cond. No.                         52.5\n==============================================================================\n\nNotes:\n[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n\"\"\"",
      "text/html": "<table class=\"simpletable\">\n<caption>OLS Regression Results</caption>\n<tr>\n  <th>Dep. Variable:</th>          <td>beer</td>       <th>  R-squared:         </th> <td>   0.504</td>\n</tr>\n<tr>\n  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>   0.486</td>\n</tr>\n<tr>\n  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>   28.45</td>\n</tr>\n<tr>\n  <th>Date:</th>             <td>Tue, 16 Apr 2024</td> <th>  Prob (F-statistic):</th> <td>1.11e-05</td>\n</tr>\n<tr>\n  <th>Time:</th>                 <td>20:28:35</td>     <th>  Log-Likelihood:    </th> <td> -102.45</td>\n</tr>\n<tr>\n  <th>No. Observations:</th>      <td>    30</td>      <th>  AIC:               </th> <td>   208.9</td>\n</tr>\n<tr>\n  <th>Df Residuals:</th>          <td>    28</td>      <th>  BIC:               </th> <td>   211.7</td>\n</tr>\n<tr>\n  <th>Df Model:</th>              <td>     1</td>      <th>                     </th>     <td> </td>   \n</tr>\n<tr>\n  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>   \n</tr>\n</table>\n<table class=\"simpletable\">\n<tr>\n       <td></td>          <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n</tr>\n<tr>\n  <th>Intercept</th>   <td>   34.6102</td> <td>    3.235</td> <td>   10.699</td> <td> 0.000</td> <td>   27.984</td> <td>   41.237</td>\n</tr>\n<tr>\n  <th>temperature</th> <td>    0.7654</td> <td>    0.144</td> <td>    5.334</td> <td> 0.000</td> <td>    0.471</td> <td>    1.059</td>\n</tr>\n</table>\n<table class=\"simpletable\">\n<tr>\n  <th>Omnibus:</th>       <td> 0.587</td> <th>  Durbin-Watson:     </th> <td>   1.960</td>\n</tr>\n<tr>\n  <th>Prob(Omnibus):</th> <td> 0.746</td> <th>  Jarque-Bera (JB):  </th> <td>   0.290</td>\n</tr>\n<tr>\n  <th>Skew:</th>          <td>-0.240</td> <th>  Prob(JB):          </th> <td>   0.865</td>\n</tr>\n<tr>\n  <th>Kurtosis:</th>      <td> 2.951</td> <th>  Cond. No.          </th> <td>    52.5</td>\n</tr>\n</table><br/><br/>Notes:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.",
      "text/latex": "\\begin{center}\n\\begin{tabular}{lclc}\n\\toprule\n\\textbf{Dep. Variable:}    &       beer       & \\textbf{  R-squared:         } &     0.504   \\\\\n\\textbf{Model:}            &       OLS        & \\textbf{  Adj. R-squared:    } &     0.486   \\\\\n\\textbf{Method:}           &  Least Squares   & \\textbf{  F-statistic:       } &     28.45   \\\\\n\\textbf{Date:}             & Tue, 16 Apr 2024 & \\textbf{  Prob (F-statistic):} &  1.11e-05   \\\\\n\\textbf{Time:}             &     20:28:35     & \\textbf{  Log-Likelihood:    } &   -102.45   \\\\\n\\textbf{No. Observations:} &          30      & \\textbf{  AIC:               } &     208.9   \\\\\n\\textbf{Df Residuals:}     &          28      & \\textbf{  BIC:               } &     211.7   \\\\\n\\textbf{Df Model:}         &           1      & \\textbf{                     } &             \\\\\n\\textbf{Covariance Type:}  &    nonrobust     & \\textbf{                     } &             \\\\\n\\bottomrule\n\\end{tabular}\n\\begin{tabular}{lcccccc}\n                     & \\textbf{coef} & \\textbf{std err} & \\textbf{t} & \\textbf{P$> |$t$|$} & \\textbf{[0.025} & \\textbf{0.975]}  \\\\\n\\midrule\n\\textbf{Intercept}   &      34.6102  &        3.235     &    10.699  &         0.000        &       27.984    &       41.237     \\\\\n\\textbf{temperature} &       0.7654  &        0.144     &     5.334  &         0.000        &        0.471    &        1.059     \\\\\n\\bottomrule\n\\end{tabular}\n\\begin{tabular}{lclc}\n\\textbf{Omnibus:}       &  0.587 & \\textbf{  Durbin-Watson:     } &    1.960  \\\\\n\\textbf{Prob(Omnibus):} &  0.746 & \\textbf{  Jarque-Bera (JB):  } &    0.290  \\\\\n\\textbf{Skew:}          & -0.240 & \\textbf{  Prob(JB):          } &    0.865  \\\\\n\\textbf{Kurtosis:}      &  2.951 & \\textbf{  Cond. No.          } &     52.5  \\\\\n\\bottomrule\n\\end{tabular}\n%\\caption{OLS Regression Results}\n\\end{center}\n\nNotes: \\newline\n [1] Standard Errors assume that the covariance matrix of the errors is correctly specified."
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 打印估计的结果\n",
    "lm_model.summary()"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:28:35.729485Z",
     "end_time": "2024-04-16T20:28:35.771836Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 7. 实现：使用 AIC 进行模型选择"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "outputs": [],
   "source": [
    "# 空模型\n",
    "null_model = smf.ols(\"beer ~ 1\", data=beer).fit()"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:29:27.547931Z",
     "end_time": "2024-04-16T20:29:27.557527Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "outputs": [
    {
     "data": {
      "text/plain": "227.942"
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 空模型的 AIC\n",
    "null_model.aic"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:29:36.770318Z",
     "end_time": "2024-04-16T20:29:36.825786Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "outputs": [
    {
     "data": {
      "text/plain": "208.909"
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 含有解释变量的模型的 AIC\n",
    "lm_model.aic"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:30:43.475262Z",
     "end_time": "2024-04-16T20:30:43.533216Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "outputs": [
    {
     "data": {
      "text/plain": "-102.455"
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 对数似然度\n",
    "lm_model.llf"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:30:53.393052Z",
     "end_time": "2024-04-16T20:30:53.442921Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "outputs": [
    {
     "data": {
      "text/plain": "1.000"
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 解释变量的个数\n",
    "lm_model.df_model"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:31:05.335338Z",
     "end_time": "2024-04-16T20:31:05.389031Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "outputs": [
    {
     "data": {
      "text/plain": "208.909"
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# AIC\n",
    "-2 * (lm_model.llf - (lm_model.df_model + 1))"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:31:16.460828Z",
     "end_time": "2024-04-16T20:31:16.540643Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 9. 实现：用 seaborn 绘制回归直线"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "outputs": [
    {
     "data": {
      "text/plain": "<seaborn.axisgrid.FacetGrid at 0x22469c6ed70>"
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": "<Figure size 500x500 with 1 Axes>",
      "image/png": "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kSNHkJ+ff8rXwuPxwGq1xrrcNrV3DJWVldBoNFiyZAnGjh2Lq666CmvXroXf7xew6tNbtGgRLrroIrz//vtYvnw5lEplQv1eAG0fQyL8TgCAw+HAnDlzsHDhQmRlZYU9lmivw+lQIEdYMBjEwYMHYbfb8cADD+DZZ5/F+eefj3vuuQdff/210OV1idfrDfvjCgAymQwA4PP5hCipSyorK8GyLNLT0/H0009j3rx5+OKLLzB9+nRwHCd0eW36/vvvMX/+fFxxxRW45JJL2nwtWj6O10D7/TFUVlbC5/PhvPPOw4YNG3Dffffhn//8JxYuXCh0qad0xx134M0338Q111yD+++/H3v37k2434u2jiFRfieKi4sxdOhQTJgwodVjifY6nI64/U8hnSEWi/Htt99CJBJBLpcDAAYPHoyqqio8//zzrS43JgK5XN7qj33LD7pSqRSipC6577778Le//Q0GgwEAkJOTg7S0NNx8880oLy9vdYlbaB9//DEKCwsxbNgwrF69GkDzH5rfvxYtHysUipjX2J62jmHJkiWYO3cudDodgObXQSKRYObMmZgzZw5SU1OFLLlN2dnZAIDly5djz5492Lp1a8L9XrR1DMuXL4/734m3334bu3btwrvvvtvm44n2OpwOnSFHgUqlCoVxi/79+6Ourk6gironMzMT9fX1YWMtH2dkZAhRUpewLBv6w9Oif//+AJove8WTrVu34oEHHsCll16Kp59+OvSOPysrq83XQqlUQqPRCFHqKZ3qGMRicSiMW8Tj62CxWPD+++8jGAyGxliWRXZ2Nurr6xPi96K9Y0iE34k333wTZrMZl1xyCYYOHYqhQ4cCAIqKijB16tSEeB06igI5wqqqqjBs2DB8++23YeM//fRT6B1qohkxYgS+++47NDU1hca++eYbnH322TAajQJW1jlz5szBnXfeGTZWXl4OAHH12rz88stYunQpbrvtNpSWloZdjhs+fDh27NgR9vnffPMNhg0bBpaNn1/n0x3D7bffjvnz54d9fnl5OSQSCfr27RvjSk+toaEBs2bNCrvVFAgEsG/fPvTr1y8hfi/aO4ZE+J1YvXo1PvjgA7z99tuh/wFAQUEBli9fnhCvQ4cJPc072TQ1NfE33HADf/XVV/M7d+7kq6ur+UceeYQfPHhw2NKDeDZ37tyw5UINDQ38iBEj+Llz5/JVVVX8m2++yefl5fFvvfWWgFW27/fH8fHHH/M5OTn8+vXr+SNHjvCfffYZP378eH7WrFkCVhnu4MGD/KBBg/j7778/bF1ofX0973A4+MrKSn7QoEH8qlWr+Orqav7555+Pu3XI7R3Dli1b+NzcXP7ll1/mf/nlF/7999/nL7zwQr60tFTo0luZOnUqf8UVV/A7duzgf/75Z37WrFn8iBEj+GPHjiXM78XpjiERfifacvKyp0R5HTqCAjkKTCYTP2/ePH7MmDF8Xl4ef8stt/A7d+4UuqwO+32Q8TzP79mzh7/55pv5wYMH85deeim/ZcsWgarruLaO44MPPuD/8pe/8Oeddx4/ZswYfsWKFbzX6xWowtaeeuopPicnp83/zZ07l+d5nt+2bRt/zTXX8IMHD+avuuoq/v333xe46nAdOYatW7fyf/zjH0M/T0899RTf1NQkcOWtORwOvqioiB8zZgx/3nnn8XfddRdfWVkZejwRfi/aO4Z4/51oy8mBzPOJ8Tp0BMPzcbJ4kRBCCOnB4uemEyGEENKDUSATQgghcYACmRBCCIkDFMiEEEJIHKBAJoQQQuIABTIhhBASByiQCSGEkDhAgUyIwHpaK4CedryEdBQFMiEC+uSTTzB37lyhy4iZqqoq3HrrrUKXQUhcou0XCRHQpk2bhC4hpv7zn//ghx9+ELoMQuISnSETQgghcYACmRCB3H777dixYwd27NiBAQMG4Ntvv4XNZsPixYsxevRo5OXl4eabbw7bOg8ABgwYgFdeeQXz5s3DBRdcgJEjR2LZsmXwer1YuXIlRo0ahQsvvBALFiwIbdTe8nVbt27F3LlzMXToUIwePRrLly8P+xwA+Pjjj3H99dcjLy8PY8aMwbJly+B2u0OPr1+/HpdffjmeeOIJjBw5EhdffDHsdju8Xi/WrFmDK664AoMHD8awYcMwefJkVFRUhL7uiSeeCNWyfv16/PrrrxgwYADeeuutsBrmzZuH8ePHh/1bFRYWoqCgAOeffz4mT54MoHkj+sceewzjxo3D4MGDMWHCBHzwwQcReHUIiT26ZE2IQIqKijB79uzQf2dnZ+O2225DQ0MDZs6cifT0dLz55puYOnUqNmzYgIsuuij0tatWrcI111yDJ554Ap9++ilefPFFfPHFFxg4cCBWr16N3bt3Y/369Tj77LMxderU0NetW7cOQ4YMwdq1a3HgwAGsXbsWJpMJa9euBQC8++67KCwsxIQJE/Dggw/i2LFjePzxx1FdXY2NGzeCYRgAQE1NDbZt24bHH38cNpsNOp0OBQUF2LVrF2bNmoWzzjoLR44cwbp16/DQQw/h/fffx0033YTa2lq88cYbeO2115CZmYlgMNjhf69///vf+POf/4ynnnoKHMeB53ncf//9+P7771FQUIB+/frho48+wsyZM+H3+/GXv/yl+y8SIbEk6F5ThPRwEydODG0R+dprr/E5OTn87t27Q49zHMffdttt/PXXXx8ay8nJ4W+66abQx8FgkD///PP58ePH84FAIDR+zTXX8Pfdd1/Y111xxRVhn7Nx40Y+JyeHr66u5jmO48eOHctPmTIlrMavvvqKz8nJ4T/99FOe53m+rKyMz8nJCdtS1Ofz8XfddVerrSBfeOEFPicnh6+vrw/72hZHjx5ttZUezzdvnXnppZeG/TsNGTKE9/l8obEvvviCz8nJafWchYWF/JgxY8KOk5BEQJesCYkTX3/9NdLS0jBo0CAEg0EEg0E0NTXh0ksvxU8//QS73R763KFDh4b+WyQSwWAwYNCgQRCLT1z00uv1aGxsDHuOCRMmhH3OlVdeCQDYuXMnDh48iNraWowfPz70/MFgECNGjIBarcaXX34Z9r1yc3ND/y2VSvH888/j6quvRl1dHb755hu8+uqr+PTTTwEAfr+/2/8+55xzDqRSaejjr7/+GgzDYNy4cWH1jh8/HiaTCVVVVd1+TkJiiS5ZExInbDYbTCYTBg0a1ObjJpMJOp0OAKBWq1s9rlQq232OjIyMsI+NRiMAwG63w2azAQBKSkpQUlLS6mvr6+vDPlapVGEfb9++HY888ggOHjwIlUqFgQMHhmriI7D2+PfPZ7PZwPM8hg0b1ubn19fXh71pICTeUSATEic0Gg369u2L1atXt/n4mWee2e3nsFqtYR83NDQAAFJSUqDVagEAc+bMwciRI1t9bcubgbb88ssvuP/++3HZZZfhmWeeQe/evcEwDF566SVs3779lF/Xck+6qakpbPzkSWSnotFooFQqsXnz5jYf79OnT7vfg5B4QpesCREQy574FRw5ciSOHz8Oo9GIvLy80P++/PJLbNiwASKRqNvP97///S/s4w8//BAMw2DUqFE455xzYDQa8euvv4Y9f0ZGBtasWYN9+/ad8vv+9NNP8Pl8uOeee3DWWWeFgrYljFvOkE8+XuDEmX5dXV1oLBAI4Mcff2z3WEaOHAm32w2e58PqraysxD/+8Y9OTRgjJB7QGTIhAtJqtfjhhx/w9ddf4/LLL8fWrVsxefJkTJs2DVlZWfjqq6/w3HPPYeLEiZBIJN1+vt27d6OwsBDXXnst9u/fj/Xr1+Pmm29G7969AQAzZ87E4sWLIRKJcOmll8LhcODJJ59EXV3dKS+lAwjdv161ahXuuusu+P1+vPXWW/jss88AnDjjbTkLf++99zBkyBD07t0bQ4cOxZYtW9CnTx/odDps3rwZXq+33Uvw48aNw4gRIzB9+nRMnz4d/fr1w48//oiysjLk5+cjJSWl2/9ehMQSnSETIqDbbrsNEokEd999N3bs2IGXXnoJF1xwAVatWoW7774b//3vf/HQQw9h/vz5EXm+O+64A8FgEH//+9/x0ksvYdq0aSgqKgo9ftNNN2HNmjX4/vvvMW3aNBQXF+PMM8/Eli1bQqHdlj59+mDNmjWoq6vDfffdh8WLFwMAtmzZAoZhsGvXLgDAFVdcgby8PMybNw/PP/88AGDFihUYPHgwFi5ciPnz52PQoEG444472j0WlmXx7LPP4k9/+hOeeeYZTJkyBa+++iomT56Mxx9/vDv/TIQIguEjMduCEBL3BgwYgL///e944IEHhC6FENIGOkMmhBBC4gAFMiGEEBIH6JI1IYQQEgfoDJkQQgiJAxTIhBBCSBygQCaEEELiAAUyIYQQEgcokAkhhJA4QIFMCCGExAEKZEIIISQOUCATQgghceD/Afe8jKFl7vIqAAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.lmplot(x=\"temperature\", y=\"beer\", data=beer,\n",
    "           scatter_kws={\"color\": \"black\"},\n",
    "           line_kws={\"color\": \"black\"})"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:31:52.614819Z",
     "end_time": "2024-04-16T20:31:52.945594Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 10. 实现：使用模型进行预测"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "outputs": [
    {
     "data": {
      "text/plain": "array([50.301, 53.746, 42.264, 55.2  , 46.704, 37.825, 44.943, 54.511,\n       52.445, 41.116, 54.664, 49.23 , 53.21 , 52.445, 41.04 , 52.598,\n       45.25 , 61.783, 55.43 , 50.301, 42.418, 50.301, 51.143, 40.657,\n       66.911, 52.904, 62.854, 41.423, 62.472, 39.509])"
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 拟合值\n",
    "lm_model.predict()"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:32:19.048184Z",
     "end_time": "2024-04-16T20:32:19.064470Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "outputs": [
    {
     "data": {
      "text/plain": "0    34.610215\ndtype: float64"
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 预测\n",
    "lm_model.predict(pd.DataFrame({\"temperature\": [0]}))"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:32:39.476555Z",
     "end_time": "2024-04-16T20:32:39.502344Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "outputs": [
    {
     "data": {
      "text/plain": "Intercept      34.610215\ntemperature     0.765428\ndtype: float64"
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 气温为 0 度时的预测值等于截距\n",
    "lm_model.params"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:32:53.159203Z",
     "end_time": "2024-04-16T20:32:53.204016Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "outputs": [
    {
     "data": {
      "text/plain": "0    49.918767\ndtype: float64"
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 预测\n",
    "lm_model.predict(pd.DataFrame({\"temperature\": [20]}))"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:33:05.340408Z",
     "end_time": "2024-04-16T20:33:05.383317Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\58248\\AppData\\Local\\Temp\\ipykernel_7624\\1029445083.py:2: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
      "  beta0 = lm_model.params[0]\n",
      "C:\\Users\\58248\\AppData\\Local\\Temp\\ipykernel_7624\\1029445083.py:3: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
      "  beta1 = lm_model.params[1]\n"
     ]
    },
    {
     "data": {
      "text/plain": "49.919"
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 不使用 predict 函数进行预测\n",
    "beta0 = lm_model.params[0]\n",
    "beta1 = lm_model.params[1]\n",
    "temperature = 20\n",
    "\n",
    "beta0 + beta1 * temperature"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:34:40.118940Z",
     "end_time": "2024-04-16T20:34:40.160278Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 11. 实现：获取残差"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "outputs": [
    {
     "data": {
      "text/plain": "0   -5.001481\n1    5.554095\n2   -1.864491\ndtype: float64"
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 获得残差\n",
    "resid = lm_model.resid\n",
    "resid.head(3)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:35:06.411251Z",
     "end_time": "2024-04-16T20:35:06.442972Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "outputs": [
    {
     "data": {
      "text/plain": "0    50.301481\n1    53.745905\n2    42.264491\nName: temperature, dtype: float64"
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算拟合值\n",
    "y_hat = beta0 + beta1 * beer.temperature\n",
    "y_hat.head(3)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:35:17.390628Z",
     "end_time": "2024-04-16T20:35:17.421448Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "outputs": [
    {
     "data": {
      "text/plain": "0    50.301481\n1    53.745905\n2    42.264491\ndtype: float64"
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 获得拟合值\n",
    "lm_model.fittedvalues.head(3)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:35:32.219284Z",
     "end_time": "2024-04-16T20:35:32.249597Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "outputs": [
    {
     "data": {
      "text/plain": "0   -5.001481\n1    5.554095\n2   -1.864491\ndtype: float64"
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 手动计算残差\n",
    "(beer.beer - y_hat).head(3)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:35:44.147820Z",
     "end_time": "2024-04-16T20:35:44.160493Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 13. 实现：决定系数"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "outputs": [
    {
     "data": {
      "text/plain": "0.504"
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 决定系数\n",
    "mu = np.mean(beer.beer)\n",
    "y = beer.beer\n",
    "yhat = lm_model.predict()\n",
    "\n",
    "np.sum((yhat - mu) ** 2) / np.sum((y - mu) ** 2)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:36:33.374866Z",
     "end_time": "2024-04-16T20:36:33.443278Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "outputs": [
    {
     "data": {
      "text/plain": "3277.115"
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.sum((yhat - mu) ** 2) + sum(resid ** 2)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:36:56.949428Z",
     "end_time": "2024-04-16T20:36:56.965934Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "outputs": [
    {
     "data": {
      "text/plain": "3277.115"
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.sum((y - mu) ** 2)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:37:19.722833Z",
     "end_time": "2024-04-16T20:37:19.739316Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "outputs": [
    {
     "data": {
      "text/plain": "0.504"
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "1 - np.sum(resid ** 2) / np.sum((y - mu) ** 2)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:37:38.880705Z",
     "end_time": "2024-04-16T20:37:38.933748Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 15. 实现：修正决定系数"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "outputs": [
    {
     "data": {
      "text/plain": "0.486"
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n = len(beer.beer)\n",
    "s = 1\n",
    "1 - ((np.sum(resid ** 2) / (n - s - 1)) /\n",
    "     (np.sum((y - mu) ** 2) / (n - 1)))"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:38:12.790487Z",
     "end_time": "2024-04-16T20:38:12.906494Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "outputs": [
    {
     "data": {
      "text/plain": "0.486"
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm_model.rsquared_adj"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:38:23.052953Z",
     "end_time": "2024-04-16T20:38:23.067771Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 16. 实现：残差的直方图和散点图"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\58248\\AppData\\Local\\Temp\\ipykernel_7624\\3386035223.py:2: UserWarning: \n",
      "\n",
      "`distplot` is a deprecated function and will be removed in seaborn v0.14.0.\n",
      "\n",
      "Please adapt your code to use either `displot` (a figure-level function with\n",
      "similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "\n",
      "For a guide to updating your code to use the new functions, please see\n",
      "https://gist.github.com/mwaskom/de44147ed2974457ad6372750bbe5751\n",
      "\n",
      "  sns.distplot(resid, color='black')\n",
      "C:\\Python310\\lib\\site-packages\\seaborn\\_oldcore.py:1498: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n",
      "  if pd.api.types.is_categorical_dtype(vector):\n",
      "C:\\Python310\\lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
      "  with pd.option_context('mode.use_inf_as_na', True):\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Axes: ylabel='Density'>"
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 残差的直方图\n",
    "sns.distplot(resid, color='black')"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:38:49.092438Z",
     "end_time": "2024-04-16T20:38:49.268332Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "jointplot() takes from 0 to 1 positional arguments but 2 positional arguments (and 2 keyword-only arguments) were given",
     "output_type": "error",
     "traceback": [
      "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
      "\u001B[1;31mTypeError\u001B[0m                                 Traceback (most recent call last)",
      "Cell \u001B[1;32mIn[32], line 2\u001B[0m\n\u001B[0;32m      1\u001B[0m \u001B[38;5;66;03m# 残差的散点图\u001B[39;00m\n\u001B[1;32m----> 2\u001B[0m \u001B[43msns\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mjointplot\u001B[49m\u001B[43m(\u001B[49m\u001B[43mlm_model\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mfittedvalues\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mresid\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m      3\u001B[0m \u001B[43m              \u001B[49m\u001B[43mjoint_kws\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43m{\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mcolor\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m:\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mblack\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m}\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m      4\u001B[0m \u001B[43m              \u001B[49m\u001B[43mmarginal_kws\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43m{\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mcolor\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m:\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mblack\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m}\u001B[49m\u001B[43m)\u001B[49m\n",
      "\u001B[1;31mTypeError\u001B[0m: jointplot() takes from 0 to 1 positional arguments but 2 positional arguments (and 2 keyword-only arguments) were given"
     ]
    }
   ],
   "source": [
    "# 残差的散点图\n",
    "sns.jointplot(lm_model.fittedvalues, resid,\n",
    "              joint_kws={\"color\": \"black\"},\n",
    "              marginal_kws={\"color\": \"black\"})"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 18. 实现：分位图"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj8AAAG1CAYAAAAWb5UUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAABhWUlEQVR4nO3dd3hUZfrG8e9MGiG9EnoNofdQFBEBBayAICSAKyq6iq66a9e1rq4FfroKiB2lY0FB2XXFuiqgIEqTBAQhSEkvpGfm/P4IGQkpzIRJJpO5P9flhTlz5szzvox4c8r7mAzDMBARERHxEGZXFyAiIiLSkBR+RERExKMo/IiIiIhHUfgRERERj6LwIyIiIh5F4UdEREQ8isKPiIiIeBSFHxEREfEoCj8iIiLiUbxdXUBjZRgGVmvTW/zabDY1yXE5wtPnwNPHD5oDTx8/aA6a6vjNZhMmk+mM+yn81MBqNcjMzHd1GU7l7W0mLCyA3NwCysqsri7HJTx9Djx9/KA58PTxg+agKY8/PDwAL68zhx9d9hIRERGPovAjIiIiHkXhR0RERDyKwo+IiIh4FIUfERER8SgKPyIiIuJRFH5ERETEoyj8iIiIiEdR+BERERGPohWeRUREpNGyWg2SU7LJzi8mNMCPrm1DMZvPvIpzbRR+REREpFHampTK8g17ycortm0LC/IjcUwsA+Oi63xcXfYSERGRRmdrUioL1uysFHwAsvKKWbBmJ1uTUut8bLcLPy+//DIzZ86stO3BBx8kLi6u0j+jRo1yUYUiIiJyNqxWg+Ub9ta6z4oNe+vcmd6tLnstW7aM559/nkGDBlXanpSUxJ///GdmzJhh2+bl5dXQ5YmIiIgTJKdkVznjc7rMvGKSU7Lp1j7M4eO7Rfg5fvw4Dz/8MJs3b6ZDhw6VXjMMg3379nHDDTcQFRXlmgJFRETEabLzaw8+ju53Ore47LVr1y58fHxYu3Ytffv2rfTaoUOHKCgooFOnTi6qTkRERJwpNMDPqfudzi3O/IwaNarGe3iSk5MBWLJkCV9//TVms5kRI0Zwxx13EBQUdFaf6+3tFtnQbl5e5kq/eiJPnwNPHz9oDjx9/KA5cIfx9+gYTniQH5m1XPoKD/ajR8fwOj327hbhpzbJycmYzWaio6NZtGgRhw4d4plnnmHv3r289dZbmM11+801m02EhQU4udrGITjY39UluJynz4Gnjx80B54+ftAcNPbx3zipD/9864eaX5/Yh4iIwDod2+3Dz0033URiYiJhYeU3PHXt2pWoqCiuuuoqduzYUeUymb2sVoPc3AJnlupyXl5mgoP9yc0txGKxurocl/D0OfD08YPmwNPHD5oDdxl/97Yh3Dq5D8s+Sap0Big82I/pF8XRvW0IWVn5ld4THOxv1xkttw8/ZrPZFnwqxMbGAnDs2LE6hx+AsrLG+6U4GxaLtcmOzV6ePgeePn7QHHj6+EFz4A7j798lkr6dIqpd4flsanf78HP33XeTmprK4sWLbdt27NgBQJcuXVxUlYiIiDiD2Wyq0+PstR7TqUdzgbFjx7Jx40bmz5/PoUOH+Oqrr7j//vu59NJL6dy5s6vLExERkUbG7c/8jB49mueff55XXnmFV199laCgIC677DJuv/12V5cmIiIijZDbhZ+nnnqqyrbx48czfvx4F1QjIiIi7sbtL3uJiIiIOELhR0RERDyKwo+IiIh4FIUfERER8SgKPyIiIuJRFH5ERETEo7jdo+4iIiJy9qxWgz0Hs6q0jWhsDMOgYPcuLLm5BA0dhsl09jUq/IiIiHiY77Yf4eX3t1dqGBoW5EfimFgGxkW7sLLKSo4dI3Xlcgp2bgfAPy4On/CIsz6uwo+IiIgH+WFPKi++u73K9qy8Yhas2cmcib1cHoCsRUVkfLSWrE8/AYsFvLyIuOQyvMPCnXJ8hR8REREPYbUaLPskqdZ9VmzYS//YKJdcAjMMg7zvN5P+7irKsrIAaN6rD9HTEvGNiXHa5yj8iIiIeIjklOxKl7qqk5lXTHJKttM7qZ9JcUoKqSuWUphcHs58oqKImppIQN9+TrnP51QKPyIiIh4iO7/24OPofs5gyc8n48P3yf7iczAMTL6+hF98KWFjx2H28a2Xz1T4ERER8RChAX5O3e9sGFYrOd98Tcb772E5kQdA4KB4oqZMwyfi7G9qro3Cj4iIiIfo2jaU8CC/Wi99hQeVP/Zenwp/3Ufq8qUUH/wNAN9WrYlOmE7z7j3q9XMrKPyIiIh4CLPZxPSxcdU+7VUhYUxsvd3sXJaTQ/p775D73Tfl9fj7E3H5BEIvGI3Ju+EiicKPiIiIB4nvFs19f4qvss5PeJAfCfW0zo9RVkb255+Rse4DrIWFAASfex6RkybjHRLi9M87E4UfERERD3NOn1bEtQ5m94HMel/hueCX3aSuWErJkSMA+HXoSHTiDPw7dXb6Z9lL4UdERMQDmc2men2cvTQjg7TVKzixdQsAXoFBRE6aTPDw8zCZXdtaVOFHREREnMZaWkLWf/5N5r8/xigpAZOJ0AtGE3HFRLwCAlxdHqDwIyIiIk5gGAb5P/9E2srllKanAeDfNY7ohBn4tW3r4uoqU/gRERGRs1LegHQZBTt3AOAdFkbklKkExQ9x+urMzqDwIyIiInViLSok46N1tgakJm9vwi4aR/jFl2Ju1szV5dVI4UdEREQcUt6AdBNp76zCkp0NQEDvPkRNS8S3hfMakNYXhR8RERGxW3HKIVKXL6VwbzIAPlHRRE1LJLBvP9cW5gCFHxERETkjy4kTpH/4PjlffvFHA9JLLiPsorH11oC0vij8iIiISI0Mq5Wc/31N+pp3sZ44AUDgoMFEXTUVn/D6bUBaXxR+REREpFpVGpC2blPegLRbd9cWdpYUfkRERKSSspzskw1IvwVONiC9YhKhF4zC5OXl4urOnsKPiIiIABUNSDeQsfYDrEVFAAQPP4/ISVPwDg52cXXOo/AjIiIi5O/eRdqKZZQcbTwNSOuLwo+IiIgHK81IJ231yj8akAadbEB6rusbkNYXhR8REREPZC0pIePjj/9oQGo2n2xAOgGv5o2jAWl9UfgRERHxIIZhkLH5e3599Q1K005pQJo4A782jasBaX1R+BEREfEQJceOkrZyOfm2BqThRE2ZSmD84EbZgLS+KPyIiIg0cdaiQjLWrSVrw39tDUgjxo0ndPylmP38XF1eg1P4ERERaaIMwyBv80bS3lmNJScbgMC+fel602yKmgVTVmZ1bYEuovAjIiLSBBUdOkjaimWVG5AmJBI6YAD+YQEUZeW7uELXUfgRERFpQiwnTpD+wfvkfOX+DUjri8KPiIhIE1DegPQr0te8Z2tAGhQ/mMgp7tuAtL4o/IiIiLi5wn17yxuQHjoINJ0GpPXF7cLPyy+/zDfffMOSJUts23755ReeeOIJdu7cSXh4ONdccw1XX321C6sUERGpf2XZ2aS9t5q8jd8BTa8BaX1xq/CzbNkynn/+eQYNGmTblpWVxaxZsxg1ahSPPvooP/30E48++igBAQFceeWVLqxWRESkfhhlZWR99imZ6z4sb0BqMhF87nlETprcpBqQ1he3CD/Hjx/n4YcfZvPmzXTo0KHSa6tXr8bHx4fHHnsMb29vOnfuzMGDB3nllVcUfkREpMnJ37WzvAHpsaNARQPSmfh36uTiytyHW3Qs27VrFz4+Pqxdu5a+fftWem3Lli0MHjwYb+8/ctzQoUP57bffSE9Pb+hSRURE6kVpehpHFr7I78/NpeTYUbyCgmhxzbW0u//vCj4OcoszP6NGjWLUqFHVvnbs2DG6du1aaVt0dDQAR48eJTIyss6f6+3tFtnQbl5e5kq/eiJPnwNPHz9oDjx9/OB+c2AtKSFj/cekf/wRRmkpmM2Ejx5D1ISJeAU43oDU3cZfH9wi/NSmqKgIX9/K6xb4nVyqu7i4uM7HNZtNhIU1za62wcH+ri7B5Tx9Djx9/KA58PTxQ+OfA8MwyNz0PQfeWExxaioAwb160umG6wlo3+6sj9/Yx1+f3D78NGvWjJKSkkrbKkJP8+bN63xcq9UgN7fgrGprbLy8zAQH+5ObW4jF4plLmnv6HHj6+EFz4OnjB/eYg+IjRzi2fCn5O3cC4B0eTotpCQTHD6bEZKLkLFZndofx11VwsL9dZ7TcPvzExMSQejIRV6j4uUWLFmd17Kba88RisTbZsdnL0+fA08cPmgNPHz80zjmwFBaS+dGHZG341NaANGzseMIvLm9AarEYgOGcz2qE428obh9+4uPjWblyJRaLBa+Taxps2rSJjh07EhGhFS1FRKTxMwyDvE0bSXt3FZacHAAC+vQlamoivmf5F3mpyu3Dz5VXXslrr73GAw88wPXXX8/27dtZvHgxjz76qKtLExEROaOiQwdJXb6Uon17AfCJbkHUtEQC+/Q9wzulrtw+/ERERPDaa6/xxBNPMHHiRKKiorj77ruZOHGiq0sTERGpkeXECdLXvEfO11/aGpBGXHo5oReOxezj4+rymjS3Cz9PPfVUlW19+vRh1apVLqhGRETEMYbVSs7XX5Y3IM0vv3E5aPAQIidPxSc83MXVeQa3Cz8iIiLuqnDvXlJXVG1A2qxrN5JTssk+dozQAD+6tg3FbDa5uNqmS+FHRESknlVpQNq8ORFXTCR05Ch+3JfB8pe+Iyvvj7XpwoL8SBwTy8C4aFeV3KQp/IiIiNSTahuQDj/ZgDQomK1JqSxYs7PK+7LyilmwZidzJvZSAKoHCj8iIiL1IH/XTlJXLKX02DEAmnXsRHTiDJp1LO/DZbUaLN+wt9ZjrNiwl/6xUboE5mQKPyIiIk5Ump5G2qqVnNi2FQCvoGAir5xC8DnnYjL/sfpwckp2pUtd1cnMKyY5JZtu7cPqtWZPo/AjIiLiBNaSErL+s57Mf39sa0AaOmoMEZdfgVfzqr0is/Pt6z9p735iP4UfERGRs2AYBie2/Uja6hWUpacD4N+tO9EJ0/Fr3abG94UG+Nl1fHv3E/sp/IiIiNRRydEjpK5cTsGukw1Iw8KJumoagYPiMZlqv0+na9tQwoL8ar30FR5U/ti7OJfCj4iIiAOsVoPkfcco/uzfNNv2DSartUoDUnuYzSYSx8RW+7RXhYQxsbrZuR4o/IiIiNhp657j/PDOv4k/vJkgSyEAvwW3I/KqBGKHdnf4eAPjopkzsRfLN+ytdAYoPMiPBK3zU28UfkREROyw7ettZK9ezqiiNAAyfYLYEBnP/oA28OVR5oRF1CmsDIyLpn9sVPkKz/nFWuG5ASj8iIiI1MJy4gRpa96j+VdfEACUmLz5Lrw3P4T2wGLysu13NmvymM0mPc7egBR+REREqnF6A1ITsDuwA19EDiTPu+qj61qTx30o/IiIiJzm9AakZZExrPLrQ4p/TK3v05o87kHhR0RE5KSy7GzS3l1F3qaNwMkGpBMmcbxjP1JWbT/j+7Umj3tQ+BEREY9nlJWRteG/ZKxbi1FctQFpiNXQmjxNiMKPiIg0eVarYXuaKiK4GUNCmtteq9KAtFMnohNn0qxDR9s+WpOnaVH4ERGRJm1rUmqVdXQi1u1menwEUZs/IX/bj8DJBqSTpxA8rHID0gpak6fpUPgREZEma2tSapWzNd7WMrrv34TPj7vINyynNCCdgFfz5jUcqZzW5GkaFH5ERKRJsloNlm/Y+8cGw6Br/iFGp28hpCwfgN8DWzH0zpvxb1NzA9LTaU0e96fwIyIijd6p9+zYe7YlOSXbdnkqoiSbMWk/0LHwKAA53s35PDKepIB2tLQE0K3eRyCNicKPiIg0atXdsxMW5EfiGe6zyc4vxtdawrmZ2xmU/QteGJSZzGwO7cnGsN6Umb1t+4lnUfgREZFGq7p7dgCy8opZsGYncyb2qjYAGVYrofu2c8PBDwk82YB0b0AbNkTGk+MTVGlfrc3jeRR+RESkUapyz041quunVXTwN1KXL8X86z4CqWhAOpj9Aa2rvF9r83gmhR8REWmUTr1npyan9tOy5OWRvuY9cv73FRgGJj8/ioaM4vXfwys1ID2V1ubxTAo/IiLSKNl7L052XiHZX/xI+pr3sRaUP8UVNGQokZOn4hMWxp+ruWcoMtSfhDGx9O8SWS+1S+Om8CMiIo2SPffitCk8TtiKDaQePwKAb5u2RCfOoHnXONs+p6/NExHcjCF925CbU0BZmbXe6pfGS+FHREQapa5tQ2vspxVYVsDI9K30OnEAKG9AGjlhEiHnX4DJq+olrlPX5vH2NuOlS10eTeFHREQaper6aZkNC/HZv3BO5nb8jDIMTISOGEHExCvxDgp2YbXiThR+RESk0Tq1n1bosf2MSf+BiNJcACwt29HxulmVGpCK2EPhR0REGrXe4fBX6xbyj24DwAgIpMWUqYScU30DUpEzUfgREZFGyVpcTOa/PybrP+sxysrKG5COvpCIy644YwNSkdoo/IiISKNiGAYnftxC2qqVlGVmANC8ew+iEqbj16rqQoUijlL4ERGRRqP4yO+krVhGwS+7AfAODyfqqgQCBw7CZNITWuIcCj8iItJgaurObiksJHPtB2R9vgEsFkze3oSNu5jw8Zdg9lPvLXEuhR8REWkQ1XZnD/Tl6pa5BH77Hyy55U9xBfTrT9TUBHyjau7YLnI2FH5ERKTeVdedvUVRBhce/h7/n9KwAD4tYohOSCSgVx/XFCkeQ+FHRETq1end2f0tRYzI2Ea/3L2YgBKTN9taDiDxwdl4+fq4rlDxGAo/IiJSryq6s5sMK/1ykxmR8RP+1hIAdgV25IvIgZzwbk780RO2FhQi9anJhJ/jx48zYsSIKtv/+c9/MmnSJBdUJCIiUN6dvU3hcS5M+54WJVkApPqG8d+owRz2b1FpP5GG0GTCz549e/Dz82PDhg2VHocMCgpyYVUiIp6tLDuLsP+uZsbvPwJQaPbl64h+/BTcFcNUeXVme7q4izhDkwk/ycnJdOjQgehoPR0gIuJqRlkZWZ/+l4yP1mIqLsIAfgqO5euI/hR6Nauyf3hQ+WPvIg2hTuEnJSWFkpISOnfuTF5eHs8//zy///4748aNY8KECU4u0T5JSUl07tzZJZ8tIiJ/yN+5ndQVyyk9fgyAZp27kHHOxXyyMbvG9ySMicVs1iKG0jAc7gj31VdfMX78eN59910AHnroIVauXMnx48e57777eOedd5xepD2Sk5PJzMxk+vTpnHPOOSQkJPD111+7pBYREU9UkpbK7/P/xe/P/x+lx4/hFRxMzLWzaXvP/fQ/fwBzJvYiLKjypa3wID/mTOzFwDidtZeG4/CZn5deeonhw4czZ84ccnNz+fTTT7nhhhu47bbbeO6553j77beZMmVKfdRao7KyMvbv30+XLl249957CQwM5OOPP+aGG27gzTffZNiwYXU6rrd30+oW7OVlrvSrJ/L0OfD08YPmoD7Gby0uJv3jj8hYvx6jrBS8vAgfcyFRV0yo1IB0SM8Y4ru3IOlQFtknSggN9CWuXViDn/HRd8Czxw91CD979uzhpZdeIjAwkI8++giLxcLYsWMBOPfcc3nzzTedXuSZeHt7s3nzZry8vGjWrPxacq9evdi7dy+vv/56ncKP2WwiLCzA2aU2CsHB/q4uweU8fQ48ffygOXDG+A3DIOO7Tfz25mKK09IBCOnbh06zr6N52zY1vu+ciMCz/mxn0HfAc8fvcPjx8/OjrKwMgG+++YaIiAi6desGQHp6OsHBwc6t0E4BAVWDSmxsLN98802djme1GuTmFpxtWY2Kl5eZ4GB/cnMLsVisri7HJTx9Djx9/KA5cNb4i3//nWPLlpC/u7wBqU9EBC2mJRI0aBDFJhPFWfnOKtnp9B1ouuMPDva364yWw+FnwIABvPHGG+Tm5vLJJ58wceJEAHbu3Mn8+fMZMGCA49Wepb179zJ16lReeuklhgwZYtu+c+dOunTpUufjlpU1rS9FBYvF2mTHZi9PnwNPHz9oDuo6fktBARnrPiT71Aak4y8hfNzFmP38sFgMwHB+wfVA3wHPHb/D4ef+++/nhhtu4G9/+xtdunThpptuAuDGG2/E39+fO++80+lFnknnzp3p1KkTjz32GI8++ihhYWGsXr2an376iffee6/B6xERaWoMq5Xcjd+R/t7qPxqQ9h9A9FUJ+ERFubg6Ecc4HH7atm3L+vXrycjIIDIy0rZ9wYIF9OjRA19fX6cWaA+z2cyiRYuYN28et99+O7m5ufTo0YM333yTrl27Nng9IiJNSdFvv5G6fAlF+38FyhuQRk5L5PfgtqSkFRNakEXXtqF6VF3cRp3W+TGZTPj4+PDZZ5+RmprK2LFjCQ4OxsfHdQ3pIiMj+ec//+myzxcRcWdWq0FySjbZ+cWEBpQvOGjknyB9zbvk/O9rMAxMfs2IuOxyDrTrx/wvDpCVt832/rAgPxLHxOqRdXELdQo/L730Ei+//DJFRUWYTCb69OnD888/T1ZWFm+88YbLbnoWERHHbU1KZfmGvWTllffWMhlWzi3ez7lp2zAVFwIQNGQYUVOu4ufjpSxYs7PKMbLyilmwZqfW7BG34PBD/kuXLuXFF19k1qxZrF69GsMov7FtxowZpKSk8K9//cvpRYqIiGOsVoM9B7PYtPsYew5mYbVWfxPy1qRUFqzZaQs+bQuPMyvlY4Yf/g5TcSGW6Fa0ved+Ws6+EXNwKMs37K31c1ds2FvjZ4k0Fg6f+VmyZIltUUOLxWLbfv7553P77bfzyiuv8Pe//92pRYqIiP1OP5MDf1yWGtIzxrbNajVsYSawrIAL0rfS88QBoKIBaX8OterF051jAUhOya50zOpk5hWTnJJNt/Zhzh6WiNM4HH6OHDnC4MGDq32tU6dOpKenn3VRIiJSNxVnck5XcVnK7GXmomEdgfIwk5tbwJDsXzg3czu+RtnJBqRd+TqiX3kD0hOltjCTnV978Klg734iruLwZa+WLVuybdu2al/buXMnLVu2POuiRETEcaeeyanJsv8mYTl5WSp/53auO7SWCzJ+xNco43CzKBa3uYRPoodW6rxeEWZCA/yqPebp7N1PxFUcPvMzefJkXnzxRZo1a8bIkSMBKCgo4JNPPuHll19m1qxZzq5RRETsYNdlqdxidn6/B/79HkE/lf9F9oRXM76MGMjOoE5gqvq4ekWY6do2lLAgv1o/Izyo/EkxkcbM4fAze/ZsDh8+zNy5c5k7dy4AV199NQCXXXYZN954o3MrFBERu5zpcpO3tYxhWTvIe2Y5JksZmL34ObIHnwX2pMRc/Rptp4YZs9lE4pjYai+rVUgYE6v1fqTRczj8mEwmHnvsMWbNmsWmTZvIyckhKCiI+Ph4LSgoIuJCNV5uMgzi8g8yKn0LIWXlPQsDevYkcup08vK8+bcDYWZgXDRzJvaqckN1eJAfCVrnR9xEndb5AejYsSMdO3Z0Zi0iInIWqrssFVmczZj07+lQeAyAPN9ABt7+Z7y698ZiMRgIDoeZgXHR9I+NqrIoos74iLuwK/xUXNayh8lk4q233qpzQSIiUr3qVmE+NXCcelnKz1LC8MyfGZizBzMGZSYzm0J70f/aaUSdG0dWVj4VDUjrEmbMZpMeZxe3ZVf4qVjI0Nn7ioiIfWpbu+fUszMDYiO5rUshxoaPaF5WvjpzckBbtrY/h0svGUj8Kev8nEphRjyJXeFnyZIl9V2HiIjU4Exr91S0lCg6sJ/UFUvx378fACM8ihMjL6NLz95crMtSIjZ2hZ8jR44QFRWFj48PR44cOeP+rVq1OuvCRETEvrV71vx7O603HiL32/9VakAaNuYiTN51vrVTpMmy67+K0aNHs2rVKvr06cOoUaMwVbMOxKl++eUXpxQnIuLpalu7x2RYGZCTxHmZP5NrLQEgaOgwoiZfhXeoLmGJ1MSu8PPkk0/Stm1b27+fKfyIiIhz1LR2T9vCY1yY9j3RJdkAlEW1pOO1s/CP1ZIjImdiV/iZOHGi7d+HDh1quwR2uuLiYnbt2uW86kREPNzpa/cEleVzQfpWepz4DfijAemFN1yFf8cIF1Qo4n4c7u01evToGi9rbd++Xe0tREQcYLUa7DmYxabdx9hzMAurtfITsxVr93gZFoZm7mD2wQ/pceI3DGBbcFdeaT+Bg2360LV9uGsGIOKG7Drz8/TTT5OdnQ2UP8q+cOFCwsKqXk/+5ZdfCAoKcmqBIiJNlT2Pr5vNJmZ2LKNo3VrCS/MAONwsik8jB3O8WfmZnmvVUkLEIXaFn06dOvHSSy8B5YsY7ty5E1/fyn1gvLy8CAoK4r777nN+lSIiTYw9j6/3DjVIW7Wc5tt/pjmQ7+3P5+ED2HWyAalaSojUjV3hZ8qUKUyZMgWAUaNGsXDhQrp161avhYmINFVnenzdx1rKvreXE5SxE8rKwMuLsDEX0uniy/FPL+ZctZQQOSsOLwDx+eef10cdIiIeo8bH1w2Dbid+Y1TGVoJPNiBt3qMnUdOm43dy/bRuAc0bslSRJsnh8GMYBu+88w5ffPEFhYWFWK3WSq+rt5eIeLoz9eCq7vH1yOIsLkz/nvaFxwHI8Q7APH4isZeP1vIiIk7mcPiZN28er732Gm3atCEmJqbKf5Tq7SUinsyem5hPfXz99AakpSYvNoX1YnNoT/7ab6CCj0g9cDj8fPDBB8yaNYt77rmnPuoREXFb9vbg6to2lLBAX9oe2cX5GdsIsBQBkBTQjs8jB5HjE0h4UPkZIxFxPofDz4kTJxg5cmQ9lCIi4r7s6cG1YsNe+sdGUfzbAa4//gleqSkApPuEsCEqnt+a/9EXMUGPr4vUG4fDz8CBA/nxxx8ZMmRIfdQjIuKWauvBVaEoK5u9Cxdh+mkzXoDh68emyH78z78LVpMXgB5fF2kADoef66+/nrvuuouysjL69u2Lv79/lX3i4+OdUpyIiLuoqQcXnNqA9CdMv5UCEDzsXCKvnEJscAhDark5WkScz+HwU9G+YsGCBQCVbsYzDAOTyaSu7iLicU7vwVWhXcExxqT/0YDUiGlNu2uuwb9LrG2fbu3VgV2kITkcft5+++36qENExK1V9OCquPRVXQPSLa0Hc80Ds/Dy9nJhpSLicPgZPHhwfdQhIuLWzGYTiWNiWfT+z8Rn7eacrB34GmVYMbEtpCv/C+/HdZMHKviINAIOhx8o796+efNmSkpKbOv6GIZBQUEBW7duZfXq1U4tUkTEHcQVH+FvGf/BnJ0BQEqzKD6NGkJZZEuu003MIo2Gw+Fn2bJl/OMf/6h2MUOz2czw4cOdUpiIiLsoOX6ctFXLyd/+M2bAKySU0gsuJaBjT64JbKabmEUaGYfDz9KlSxkxYgTPPPMML7/8MidOnOD+++/nq6++4t577+Xyyy+vjzpFRBoda3ExmR+vI+u//8GwNSC9iIjLLsfcrOqTsCLSODgcfg4fPsy9995LSEgIvXr1YsGCBTRr1oyxY8eyf/9+3n77bS699NL6qFVExOnO1Ier2v2a+9LyeDIZ766mLCsTgOY9exGdMB3fmJYNPQQRcZDD4cfHx4dmzZoB0L59ew4ePEhpaSk+Pj4MHDiQN9980+lFiojUB3v6cJ2+X0UDUvPJBqTekZFET00goN8A9eEScRNmR9/QvXt3vvjiCwA6duyI1Wrl559/BuDYsWPOrU5EpJ78sKe8D9fpqzJX9OHampQK/NGvqyA7jzFp33Ntyke0LzxOqcmL/4X3JWvGHQT2VwNSEXdSp0UOb7nlFnJzc3nyyScZPXo0d999NxdddBHr1q1j4MCB9VGniIjTWKwGyz5JqnWfFRv20rdzJMs/TaZP7t5KDUj3nGxAmusTyC9f/Ub/Hq10Q7OIG3H4zM+YMWNYtGgRnTt3BuCxxx6jQ4cOrFy5kk6dOvHQQw85vUgREWfavT+DzDP04crMK+ab/2zisl8+4OLUjQRYikj3CWFlqzF80HIkuT6Btv2SU7IboGoRcZY6rfMzcuRIW2f3sLAw3njjDWfWJCJSrzJzi2p9vXlZIednbKPVvn0AFJt8+Ca8L1tDu2E1Vf07Y219vUSk8XE4/Bw5cuSM+7Rq1apOxYiIOMOZnuAKD25W7ftObUDazFregHRHUCe+jBhIvnfNj67X1NdLRBonh8PPqFGjznhjnysam1qtVubPn88777xDXl4e8fHxPPTQQ7Rt27bBaxER17HnCa4enSIID/KrdOnr9Aakaf6R9L3lBl7ekEZ+LZfIwoPKw5WIuA+Hw8+TTz5ZJfwUFBSwZcsWNm/ezJNPPum04hyxcOFCli9fzlNPPUVMTAzPPvss119/PevWrcPX19clNYlIw6p4Mut0FU9wzZnYiyE9Y/Aym5g+No4X391OUGk+ozK20P3EQQAKzH58FdGf4VdPIDAuhkRCqz1mhYQxsbrZWcTNOBx+Jk2aVO326dOn889//pN169bZ7gdqKCUlJbzxxhvceeedts9+7rnnOO+88/jvf/+rRRdFPIDVarB8w95a91mxYS/x3VsAMLBzGHe0TMX87QZ8rH80IN3ZbjCTxvW2nSUaGBfNnIm9qpxNCg/yI0H9ukTcUp1ueK7JqFGjuPnmm515SLvs2bOH/Px8hg0bZtsWHBxMjx49+OGHHxR+RDxAckp2lTV7TpeZV0zSoSy67d/Dr6+8jl9q+Vo+RtuO5J1/Gf07dmRqNSs8D4yLpn9slF0rQYtI4+fU8PPzzz/j7e3UQ9qlYnHFli0rLysfHR19Vgsvens7vBJAo+blZa70qyfy9DloyuPPKyw94z5hJbmUvr2IX/bvAcA7NJQWU6cRPHSYXYsU9uoccdZ1ulpT/g7Yy9PnwNPHD3UIP/fdd1+VbVarlWPHjvHDDz8wefJkpxTmiMLCQoAq9/b4+fmRk5NTp2OazSbCwgLOurbGKDhYDRc9fQ6a4vjbtgyp8TUfaynDsnYwOGs33lgxeXvT6vJLaTNlMt7Nm95c2KMpfgcc5elz4Mnjdzj8bN68uco2k8lEYGAgs2fP5s9//rNTCnNERa+xkpIS278DFBcX4+9ft99cq9UgN7fAKfU1Fl5eZoKD/cnNLcRisbq6HJfw9DloyuNvFdasyhNcGAbdT/zGBelbCbaU//cc2LsPsX++nrLgcPKKrVCc76KKXaMpfwfs5elz0JTHHxzsb9cZLYfDz+eff16ngupTxeWu1NRU2rVrZ9uemppKXFxcnY9bVta0vhQVLBZrkx2bvTx9Dprq+BPGxNqezIoqzuLCtO9pV1TegDTbOxDfy66k++WjaB4eSFZWfpOcA3s11e+AIzx9Djx5/HW6QScnJ4cjR45gsVho1aoV4eHhttf27NlDcHBwgy502K1bNwIDA9m8ebMt/OTm5rJ7925mzJjRYHWISP060+KFA+OimTO+M7+tXE3PtN2YMSg1efFTTD+6TZ1Ev16t1YBURBwLPxs3bmThwoVs3boVwzBs23v06MGtt97KyJEjeeCBBxg5ciS33nqr04utia+vLzNmzGDu3LmEh4fTunVrnn32WWJiYrjooosarA4RqT9nWrzQsFrJ/eZ/hL7/Lr1P5AFQEtsL73ETSejdSU9miYiN3eFn8eLFPP3007Rs2ZIZM2bQvn17TCYTKSkpfPbZZ9x0000MGzaMI0eOMHPmzPqsuVp/+ctfKCsr48EHH6SoqIj4+Hhef/11fHx8GrwWEbHfmc7mwJkXL7x1aDDh33xM8W8HAPBt2YroxBk0796jQcYgIu7FrvCzfft2nn32WWbOnMldd91VJVDcddddPPnkkyxbtow777yT0NDQ+qi1Vl5eXtx1113cddddDf7ZIlI39rSiqG3xwuZlhYzM+JGApb9SDJj9/Ym4bAKho0ZjcsGyGyLiHuz60+Gtt94iPj6e+++/v9rXzWYzhw8fxmw2s2PHDqcWKCJNkz2tKAbGRVe7eKH5ZAPS4ac0IDX6DqbD1Yl4h4Q2RPki4sbsWuHoxx9/rHX9nuTkZL7++mtuu+02tm3b5rTiRKRpsrcVhdVqkJ1fOfi0KzjGrJSPGJP+A82spRz1i+Dt1uPJGj1JwUdE7GLXmZ/MzExiYmJqfL1jx44sW7YMi8XCggULnFaciLiv2u7lsbcVRXJKNqEBfgAEl57ggoytVRqQbg/ugmEy2/YTETkTu8JPZGQkhw8fZtCgQdW+7uPjQ//+/fnggw+IjIx0aoEi4n7OdC/P6WdzapKdX8ygzuGMyt9N/2Pb8DEstgak/wvvR5FXeeAJDyoPVyIi9rDrsteQIUNYuXJlrfsYhsHKlSs555xznFKYiLinint5Tj+zU3Evz9akVLvP0oT+vo+URx5g8NEt+BgWUppFs7jtJXwaNcQWfKB8cUM9yi4i9rIr/PzpT39i9+7d3H///RQVFVV5vbCwkPvuu489e/ZwzTXXOLtGEXET9t7L06V1CGFBNQegsJJcElO/wLzqNUrT0vAKDaXwkgTWd7ucVL8/FlUND/Kz3RgtImIvuy57xcXF8dhjj/H3v/+dzz77jOHDh9O6dWsADh8+zLfffkthYSFPPfUUnTt3rteCRaTxsvdenn2/55B4SiuKCj7WUs7J3EF8dnkDUry8CLtwLBGXXo65WTOetWNNIBGRM7F7IYwJEybQrVs3Xn31Vb788kvy88ubAQYEBHDBBRdw4403EhsbW2+Fikjj58i9PEN7xDBnYq/ye4Nyi6o0IG3eqzfR06bje8rDFmaziW7tw+qldhHxHA6tAtatWzfmzZsHlPf3AggJCXF+VSLSKJ1pNWa77+U5ud/AuGh6+Bdx6K23MB3/FQDvyCiipyUS0Lef+nCJSL2o8xKoCj0insWe1Zi7tg0lLMiv1ktfFU9mWfLzyfjwfbK/+ByTYWDy9SV8/CWEjRuP2ce33scjIp5L67+LyBnZuxqz2Wyq9l6eUyWM7kzeN1+T/v67WE42IA0cOIioqxLwiYiotzGIiFRQ+BGRWtn7BFf/2CjMZhMD46L/uJfnlDNA4UF+TO/hR/i7L3O8ogFpq1ZEJ6gBqYg0LIUfEamVI6sxV9yMPDAumv6xUX/cH2SUELL5v+Qt+0YNSEXE5fSnjojUypEnuE5lNpuIax1E9hffk7H2A/IKCwEIPmc4kVdOVh8uEXGZOoWfkpIS3n33Xb777jvS0tJ48skn+f777+nZsyd9+vRxdo0iUk/O9PQWOP4EV4WCX3aTumIZJUd+B8CvfQeiE2fg37mLc4oXEakjh8NPZmYmf/rTn9i/fz+dOnVi3759FBUV8eWXX/LUU0+xePFi+vfvXx+1iogT2fP0Fjj2BBdAaUYGaatXcGLrFgDMgYFETppMyPARmMx2LSovIlKvHP6T6JlnniE/P5/169ezZs0aDMMA4IUXXqB379688MILTi9SRJzrhz1n7r9VoeIJrtokjIkFSykZH63lt7/fVx58TCZCLhhNx388ReiIkQo+ItJoOPyn0RdffMFtt91G+/btKy1A5ufnx7XXXsuuXbucWqCIOJfFarDsk6Ra91mxYS9Wq2H7ueIJrtP7cYUH+TFnQk/iCn/n4EMPkPHB+xglJfjHdqX9Q4/SYvpMvAID62UcIiJ15fBlr+LiYkJDQ6t9zcvLi9LS0rOtSUTq0e79GWQ6+PQWVPMEV4AfHXyLSF+1jCM7twPgFRpK1JRpBA0eotWZRaTRcjj89O7dm+XLl3P++edXeW3dunX06tXLKYWJSP3IzC2ya7/qnvKq6K1lLSoi46O1HPr0E7BYqjQgFRFpzBwOP7fddhvXXHMNV1xxBeeffz4mk4mPPvqIF198kW+++YbXXnutPuoUEScJD7YvnFT3lJdhGOR9v5n0d1dRlpUFQPNefYiellipAamISGPmcPgZNGgQb775JvPmzeO1117DMAwWL15Mjx49ePnllxk6dGh91CkiTtKjUwThQX61Xvo69emtCsUpKaSuWEphcvn9Qj5RUURNVQNSEXE/dVrnJz4+npUrV1JUVEROTg6BgYEEBAQ4uzYRqQdeZhPTx8bx4rvba9wnYUysbb0fy4kTpH+4hpwvP4eKBqQXX0rY2HFqQCoibsmu8HPkyJFaX8/JySEnJ8f2c6tWrc6uKhGpV/Hdau6/lXBynR/DaiXnZANS64kTAAQOiidqyjQ1IBURt2ZX+Bk1apRDp7V/+eWXOhckIg2juqe3KlZ4Lvx1H6nLl1J88DdADUhFpGmxK/w8+eSTuqYv0gRVPL1VoSwnm9T33iH3u2/LX/f3J+LyCYReoAakItJ02PWn2aRJk+q7DhFxAnt6dVXHKCsj+/MNZKz9AGtR+aPw5Q1Ip+AdElLfZYuINKg6/VVuz549vPrqq3z//ffk5OQQERHBsGHDuOmmm2jbtq2zaxTxWI6EGXt7dZ2u4JfdpC5fSsnR8nv7/Dp0JDphuhqQikiT5XD4+f7777nuuusICQnh/PPPJyIigvT0dL7++ms++eQTli9fTlxcXH3UKuJRHAkzW5PKe3WdrqJX15yJvaq8pzQjnbTVK20NSL0Cg4icNJng4eepD5eINGkOh5958+YxcOBAXn75Zfz8/lgEraioiOuvv55nn31WCx2KnCVHwozVarB8w95aj7diw176x0YBYCkuJu3DD0j/+COMkhIwmQi9YBQRV0zCS0tWiIgHcDj8JCUl8a9//atS8AFo1qwZ1113HX/961+dVpyIJ3IkzJjNJpJTsqt0Zz9dZl4xyYeyaJ97kF9XraD4eHnXdv+ucUQnzMBPl6tFxIM4HH5atmzJ4cOHq30tMzOT8PDwsy5KxJPZHWZONh6trgfX6cJLcihbsoiUg8kAeIeFETllKkHxakAqIp7H4fBzzz33cM899xAcHMwll1yC+eS9Ad9++y3PP/88jzzyiLNrFPEo9oSZU/errgdXBV9rKedkbic++xe8sGLy9qb1hMsJHDMOq7dWZxYRz+Rw+HnssccoKSnh7rvv5r777iMqKors7GyKioowDINbbrnFtq/JZGL37t1OLVikqastzFS3X9e2oYQF+VU+W2QY9DhxgAvStxJkKQTKG5C2nDGDmO6dycrKx1pmdXrtIiLuwOHwozV/ROpXtWHmNKc2HjWbTSSOibXdIB1dnMmFad/Ttqj8vp4snyD8LruSrhePxNtbT3GJiDgcfk49syMiznd6mKnOqY1HobxVxZxxnTi0cjXd03/BjEGJyZufYvrRfdpE+vVs3RCli4i4hTotclhSUsL+/fvJy8ur9vX4+PizKkrE0w2MO3Pj0QqG1UrO/74iZM179DzZgLS4ax98xk0gsVdHu1Z4FhHxJA6Hn40bN/K3v/2NrKwsAAzDAMrv7zEMA5PJpMamIk5QW+PRCoW/7iN12RKKDx0EwLd1G6ITptO8W3dXlS0i0ug5HH6efPJJwsPDeeSRRwgNDa2HkkSkwumNRyuU5WSTfnoD0ismEXrBKExeXg1dpoiIW3E4/Bw6dIiFCxdy7rnn1kc9IlKLahuQDh9B5KTJeAcHu7g6ERH34HD4iYuL4+jRo/VRS51t3bqVxMTEKtvffvtthgwZ4oKKRKqqa8f1Cvm7d5G2YlnlBqSJM/Hv1Km+ShYRaZIcDj/3338/d955J15eXvTp0wd/f/8q+7Rq1copxdkrKSmJdu3asXz58krbQ0JCGrQOkZrUteM6VNOANOhkA9Jz1YBURKQu6vy01/3331/j6w19w3NycjJdunQhKiqqQT9XxB516bgOYC0pIeuTf5P574/LG5CazYReMJqIKybg1VwNSEVE6srh8PPII4/g7e3NX//6VyIjI+ujJoclJSUxcOBAV5chUoWjTUqh/AnK/J+2kbpqOWXp6cDJBqSJM/BrowakIiJny+Hws3//fl544QVGjhxZD+XUzd69ewkLC2PSpEkcP36crl27cscdd9CnT5+zOm5TWw3Xy8tc6VdP1NBz8MtvmXY1Kf31SA7dO4RTfPQox5YtJX/nDgC8w8NpMXUawYOd04BU3wHNgaePHzQHnj5+qEP4ad++PQUFBfVRS7UOHz7M6NGja3z9yy+/JC8vj4KCAh588EG8vLxYunQpM2bM4P3336dLly51+lyz2URYWNO8tBAcXPU+LU/TUHNQeiDLvv2Kisn58D2OrPsYo6zM1oC0zZQr8WrWzOl16TugOfD08YPmwJPH73D4ue2223j66acJCQmhX79+BATUb0Bo0aIF69evr/H16OhofvjhB/z9/fHx8QGgd+/e7N69myVLlvDoo4/W6XOtVoPc3IYLeQ3By8tMcLA/ubmFWCye2dSyoefAx2TUvoNh0PPEAbznf8DvJ3IBCOzbl5jEGfi2aEFuoQUK851Wj74DmgNPHz9oDpry+IOD/e06o+Vw+Jk3bx7p6elcf/311b7u7E7uPj4+dO7cudZ9gk9b38RsNtO5c2eOHz9+Vp9d1kS7Xlss1iY7Nns11Bx0bhVSY5PS8gakm2lblAaAT1Q0UQmJBPbpB9Tv90/fAc2Bp48fNAeePH6Hw88ll1xSH3XU2ddff81tt93G2rVradu2/GbQsrIy9uzZw0UXXeTi6sTTVdektJmlmBEZ2+iXuxczBoaPD5GXXk7YRWMx+/i6sFoREc/g9l3dBwwYQFhYGPfccw/3338/Pj4+vPLKK2RnZ3PNNde4ujwRW5PSFZ8m0e73XZyf8SP+1hIASrv1peu1V+MTHuHiKkVEPEed1vkpLi4mKSmJkpISW2NTq9VKYWEhW7Zs4c4773RqkbUJDAxk8eLFzJ07l+uuu47i4mIGDhzI0qVLG82j+CI9vHK4NeNTitMOAWBEtaT1zJkE9ujh4spERDyPw+Fn8+bN3HbbbeTk5FT7ekBAQIOGH4B27drxwgsvNOhnitijLDubtPdWk7fxO6CiAelEQi8YrQakIiIu4nD4ee655wgLC+Pxxx9n7dq1mM1mJk2axNdff82KFSt49dVX66NOEbdilJWR9dmnZK77UA1IRUQaGYfDT1JSEv/4xz+48MILycvLY+XKlZx//vmcf/75lJaW8tJLL/HKK6/UR60ibiF/187yBqTHyhsAqwGpiEjj4nD4sVqttGjRAihf8HDv3j+W7h87diz33HOP86oTcSOl6WnlDUh/3AqcbEB65RSCzxmuBqQiIo2Iw+GnXbt2JCUlMWjQIDp27EhhYSH79++nU6dOlJWVkZ/vvAXZRNyBtaSErP+sL29AWlqqBqQiIo2cw+HnsssuY+7cuRiGwYwZM+jVqxePP/44M2fOZNGiRXVuJyHibsobkP5I6qoVfzQgjetGdMJ0NSAVEWnEHA4/119/PVlZWfz888/MmDGDhx9+mNmzZ3PzzTcTGBjISy+9VB91ijQqJceOkrpiGQW7yhcv9A4LJ+qqaQQOindKA1IREak/Docfs9lc6b6e3r17s2HDBtulr8DAQKcWKNKYWIsKyVi3lqwN/wWLBZO3N2EXjSP8kssw+/m5ujwREbFDnRY5PFVOTg6HDh2iY8eOCj7SZBmGQd6mjaS9uxpLTjYAAX36EjU1Ed+TDwCIiIh7sDv8bN++nYULFzJu3DgmTJgAwNKlS3n22WcpKSnBz8+PW2+9leuuu66+ahVxiaJDB0ldvpSifeVPNvpEtyBqWoKtAamIiLgXu8LPnj17mDlzJqGhoUyaNAmAHTt28MQTT9C5c2duv/129u/fz3PPPUf79u0ZM2ZMvRYt0hAsJ06Q/sH75Hz1BRgGJl9fIi69nNALx2L28XF1eSIiUkd2hZ+XX36Zbt26sXjxYvz9/QF4++23AZg7dy7dunUDID09nSVLlij8iFszrFZyvv6S9DXvYT25dEPQ4CFETp6KT3i4i6sTEZGzZVf4+eGHH7j33nttwQfgm2++oW3btrbgAzB8+HDWrFnj/CpFGkjh3r2krlhK8aGDAPi2bkN0wnSad+vu4spERMRZ7Ao/2dnZxMTE2H7+9ddfycrKqnKGx9/fn5KSEudWKNIAqjQgbd68vAHpyFFqQCoi0sTYFX5CQ0PJyMiw/bxp0yZMJhPDhg2rtN+vv/5KuC4LiBup0oDUZCJ4+HnlDUiD1IBURKQpsiv8DB48mNWrV3PRRRdhsVh477338PPz47zzzrPtU1JSwrJlyxgwYEC9FSviTPm7dpK6Yimlx44B0KxjJ6ITZ9CsoxqQiog0ZXaFn5tuuompU6cyZswYDMPgyJEjzJkzh6CgIADee+89li1bxoEDB3jmmWfqtWCRs1V0PJWUl18jb2tFA9Lgkw1Izz1jA1Kr1SA5JZvs/GJCA/zo2jYUs1krOouIuBO7wk9sbCyrV6/mjTfeICMjg9mzZ5OQkGB7/fnnn8fb25sFCxbQvbtuDJXGyVpSwvG168lY/zGUlWKYzISOGkPkFVfY1YB0a1IqyzfsJSuv2LYtLMiPxDGxDIyLrs/SRUTEiUyGYRhne5Djx48TFRWF+Qx/a3YnFouVzMym1aHe29tMWFgAWVn5lJVZXV1OgzEMgxPbfuT3pUsx52YBcNA/hk8jB2OJbGFXeNmalMqCNTtrfH3OxF5uEYA89TtwKk+fA08fP2gOmvL4w8MD8PI6cxY56/YWAC20vL80UiVHj5Q3IN29CzOQ492czyMHkRTQHkwmyCtmwZqdtYYXq9Vg+Ya9tX7Oig176R8bpUtgIiJuwCnhR6SxsRQWkrnuQ7I++xQsFiwmM5tCe7IprBel5qqrM9cWXpJTsitd6qpOZl4xySnZdGsf5rQxiIhI/VD4kSalvAHpdycbkOaUb4vtyaslXcn2CarxfbWFl+z82oOPo/uJiIhrKfxIk1F08LfyBqS/7gPAp0ULoqdNZ4dXNNlrd5/x/TWFl9AAP7s+3979RETEtRR+xO1ZTpwgfc275Hz9VXkDUj8/Ii65zNaANPRgll3HqSm8dG0bSliQX62XvsKDyh97FxGRxk/hR9yWYbWS89WXpH9wagPSoUROvqpSA9KzDS9ms4nEMbG1Pu2VMCZWNzuLiLgJhR9xS4V7k0ldvpTilEPAyQakiTNoHtetyr7OCC8D46KZM7FXlXV+woP8SNA6PyIibkXhR9xKWXYWae+sJm/zRuBkA9IJkwg9/4JaG5BWhJcVG/aSWcfwMjAumv6xUVrhWUTEzSn8iFswysrI2vBfMtatxSiuWwPSgXHRxHdvwZGsIlKO5hDk7+NweDGbTXqcXUTEzSn8SKOXv3MHqSuX/dGAtFMnohPq1oDUbDbRu0skbSL8m9zKpiIiYh+FH2m0StPSSF21nPyftgGONSAVERGpicKPNDrW4mIy/7OerH9/jFFWBubyBqQRl0/Aq3lzV5cnIiJuTuFHGg3DMDjx41bSVq2gLDMDAP9u3YlOmIFf69Yurk5ERJoKhR9pFIqPHCFtxTIKftkFgHd4OFFXJRA4cBAmk56mEhER51H4EZeyFBaSufYDsj7fABYLJm9vwsaNJ3z8pZj91C5CREScT+FHXMKwWsnbtJG0d1dhyc0FIKBvP6KmJuIbrQUDRUSk/ij8SIOrqQFpQO8+Lq5MREQ8gcKPNBhLXh7pa94j53+nNCC99HJCx1yE2cfH1eWJiIiHUPiRelfegPQL0te8j7XglAakU6biE6bVkkVEpGEp/IhTWa1Gpd5XbYtSSV+5lOKUFAB827Qtb0DaNe6sjqueWiIiUlcKP+I0W5NSbV3PA8sKGJm+FfOJA0B5A9LICZMIOUMD0jMdt0JYkB+J6qYuIiJ1oPAjTrE1KZUFa3ZiNiwMzv6FczO342eUYQA/B8fSZWYCXfo73our4riny8orZsGancyZ2EsBSEREHOJ2DZIeeugh7r333irbN27cyKRJk+jbty/jxo3j448/dkF1nslqNVi+YS8d83/nukPrGJXxI35GGb/7RfJWm4v5T/Qwln93FKvVqNNxa7Niw16HjysiIp7NbcKP1Wrl//7v/1i1alWV13799VduvPFGzjvvPN5//32mTJnC3XffzcaNG11QqedJ3v4rFyT/h6lHPyOiNJd8r2Z8HH0OS9qM51izSAAy84pJTsl27Lgp2ZUudVWnLscVERHP5haXvX799VceeOABDh48SKtWraq8/tZbbxEXF8cdd9wBQOfOndm9ezevvfYaw4YNa+hyPYa1uJjMf3+M6d/r6Wopw4qJLSHd+Da8L8VevlX2z86vPcjUdX9HjysiIp7NLc78bNq0ic6dO/PRRx/Rpk2bKq9v2bKlSsgZOnQoW7duxTB0ScTZDMMgb+sP/Pb3+8n8aC0mSxm/+cfwervL+DwqvtrgAxAa4Fi7Cnv3d/S4IiLi2dzizM/06dNrff3YsWPExMRU2hYdHU1hYSFZWVmEh4fX6XO9vd0iG9rNy8tc6de6KP79d44tW0L+7t0A+EREEDU1gVe+KyLzREmN7wsP9qNHx3CHHk/v0TGc8CA/Mmu59OXocZ0xB+7M08cPmgNPHz9oDjx9/NAIws/hw4cZPXp0ja9v3LjxjOGlqKgIX9/KZxsqfi4pqfl/yLUxm02EhQXU6b2NXXCwv8PvKSsoIGXlao5+tB7DYsHk40PriVfQZvIkvPz8uLHlEf751g81vv/GiX2IiAh0+HNvnNSnXo5blzloSjx9/KA58PTxg+bAk8fv8vDTokUL1q9fX+PrISEhZzyGn59flZBT8bO/f91+c61Wg9zcgjq9t7Hy8jITHOxPbm4hFovVrvcYVis5333L8dWrseTmABDUfwAtEsobkOYWlEFBGd3bhnDr5D4s+ySp0pma8GA/pl8UR/e2IWRl5Ttcs7OPW5c5aEo8ffygOfD08YPmoCmPPzjY364zWi4PPz4+PnTu3PmsjtGyZUtSU1MrbUtNTaV58+YEBQXV+bhlZU3rS1HBYrHaNbai334jdcWpDUhjiE5IJKBXeQPS04/Rv0skfTtFVLsS89nMZX0c1945aKo8ffygOfD08YPmwJPH7/Lw4wyDBg3i+++/r7Rt06ZNDBgwALPZc69p1lX1DUivIOzCizB51/6VMZtNdGvv/H5d9XVcERHxPE0i/MycOZOJEycyd+5cJk6cyFdffcV//vMfXnvtNVeX5lYMi6W8AekHa/5oQDpkKJGT1YBURESajiYRfmJjY1m4cCHPPvssb731Fm3atOHZZ5/VGj8OKEhOIm3FHw1I/dq2JSrB8QakIiIijZ3bhZ8lS5ZUu33EiBGMGDGigatxf6VZWaS/u4q8zZsAMDcPIHLiJEJGjHS4AamIiIg7cLvwI85hlJWR9el/yfjoQ4ziYjCZCBlxPpETrsTrLG4SFxERaewUfjzQie3bObpsKaXHjwHQrHMXohNm0KxDB9cWJiIi0gAUfjxISWoqvyxcReb35YsGegUHEzV5KkFDh2HSU3EiIuIhFH48QEUD0qz//BujrBS8vAgbNYbwyyfgVcdFIEVERNyVwk8TZhgGJ7ZuIW31SsoyMwAI6duHyKkJeEW3dHF1IiIirqHw00QVH/md1OVLKdzzCwDe4RHEJCbSbsz5ZGcXeOyqniIiIgo/TYyloICMdR+S/fkGsFgweXsTNv4SwsddjG+APyaT/V3VRUREmiKFnybCsFrJ3fgt6e+9gyU3F4CA/gOIvioBn6goF1cnIiLSeCj8NAFFvx0gdflSivb/ClQ0IJ1OQK/eLq5MRESk8VH4cWPlDUjfJed/X59sQNqMiMsuJ2zMmRuQioiIeCr9H9INGRYL2V99QcYH72MtKAAgaOgwoiZfhXeoGpCKiIjURuHHzRQkJ5G6fCklhysakLYjOnEG/rFdXVyZiIiIe1D4cROlWVmkv7OKvO9PNiANCCBywpWEnD9SqzOLiIg4QOGnkbOWlpL96SdkfLzulAakI4mceCVegYGuLk9ERMTtKPw0Yvk7tpO6chmlx48DJxuQJs6gWfsOri1MRETEjSn8NEIlqamkrVpO/s8/AeAVEkLU5KsIGnqOFikUERE5Swo/jUh5A9KPTjYgLStvQDrmQsIvvUINSEVERJxE4acRKG9A+sPJBqSZADTv0ZOoadPxa9XKxdWJiIg0LQo/Llb8+++krjilAWlEBFFTEwnsP0CXuEREROqBwo+LWAoKyFj7QXkDUqsVk48PYeMuJnz8JZh9fV1dnoiISJOl8NPADKuV3O9ONiDNK29AGth/IFFTp+ETqQakIiIi9U3hpwEVHdhP6oqlFO3fD4BPTAzRCTMI6NnLxZWJiIh4DoWfBlCWl0v6+++S+83//mhAevkVhI2+UA1IRUREGpj+z1uPqm1AOuwcoq68Cu/QUNcWJyIi4qEUfupJQdKe8gakvx8GKhqQzsQ/NtbFlYmIiHg2hR8nK83MJP3dVeR9vxk42YB04pWEjFADUhERkcZA4cdJ1IBURETEPSj8OMGJ7T+Ttmr5Hw1Iu8SWNyBt197FlYmIiMjpFH7OQklqKmkrl5G//WegogHpVIKGDtPqzCIiIo2Uwk8d5W78luNvvakGpCIiIm5G4aeOTvy0DaOsjOY9exE9LRHflmpAKiIi4g4UfuqoxTXXEXHp5fi2aatLXCIiIm5E4aeOvPz98WrbztVliIiIiIO08IyIiIh4FIUfERER8Si67NXEWa0GySnZZOcXExHcjCEhzV1dkoiIiEsp/DRhW5NSWb5hL1l5xbZtEet2k3hhV/p3iXRhZSIiIq6jy15N1NakVBas2Vkp+ABk5BTx4rvb2ZqU6qLKREREXEvhpwmyWg2Wb9hb6z4rNuzFajUaqCIREZHGQ+GnCUpOya5yxud0mXnFJKdkN0xBIiIijYjb3fPz0EMPUVJSwlNPPVVp+6xZs/juu+8qbRs8eDBLlixpyPIahez82oOPo/uJiIg0JW4TfqxWK88//zyrVq1i4sSJVV5PSkrikUceYcyYMbZtPj4+DVlioxEa4OfU/URERJoStwg/v/76Kw888AAHDx6kVauqPbQyMjLIyMigb9++REVFuaDCxqVr21DCgvxqvfQVHuRH17ahDVeUiIhII+EW9/xs2rSJzp0789FHH9GmTZsqryclJWEymejYsaMLqmt8zGYTiWNia90nYUwsZrN6komIiOdxizM/06dPr/X15ORkgoKCeOyxx/j2229p3rw548aN4+abb8bX17fOn+vt7RbZsFpDesZg9jKz7JMkMk85AxQZ6s+Mi7oyoKtnniHz8jJX+tXTePr4QXPg6eMHzYGnjx8aQfg5fPgwo0ePrvH1jRs3Eh4eXusxkpOTKS4upk+fPsyaNYtffvmFZ555hiNHjvDMM8/UqS6z2URYWECd3ttYXDSsI6OHdGD3/gwyc4sID25Gj04ReOmMD8HB/q4uwaU8ffygOfD08YPmwJPHbzIMw6WLvZSWlnLo0KEaX+/QoQNeXl62n2fOnEnr1q0rPe1VVlZGfn4+ISEhtm3r16/njjvu4NtvvyUy0vHVjC0WK7m5hQ6/rzHz8jITHOxPbm4hFovV1eW4hKfPgaePHzQHnj5+0Bw05fEHB/vbdUbL5Wd+fHx86Ny581kdw9vbu1LwAYiNLb/n5dixY3UKPwBlZU3rS1HBYrE22bHZy9PnwNPHD5oDTx8/aA48efxN4oLfzJkzue+++ypt27FjBz4+PnTo0ME1RYmIiEij1CTCz9ixY/nwww9ZsWIFKSkprF+/nmeeeYbrrruOwMBAV5cnIiIijYjLL3s5w4wZMzCZTCxZsoQnn3ySqKgorrnmGm644QZXlyYiIiKNjNuFn5raVUyfPv2Mj8SLiIiINInLXiIiIiL2UvgRERERj6LwIyIiIh5F4UdEREQ8isKPiIiIeBSFHxEREfEoCj8iIiLiURR+RERExKMo/IiIiIhHUfgRERERj+J27S0aA6vVIDklm+z8YkID/OjaNhSz2eTqskRERMQOCj8O2pqUyvINe8nKK7ZtCwvyI3FMLAPjol1YmYiIiNhDl70csDUplQVrdlYKPgBZecUsWLOTrUmpLqpMRERE7KXwYyer1WD5hr217rNiw16sVqOBKhIREZG6UPixU3JKdpUzPqfLzCsmOSW7YQoSERGROlH4sVN2fu3Bx9H9RERExDUUfuwUGuDn1P1ERETENRR+7NS1bShhQbUHm/Cg8sfeRUREpPFS+LGT2WwicUxsrfskjInVej8iIiKNnMKPAwbGRTNnYq8qZ4DCg/yYM7GX1vkRERFxA1rk0EED46LpHxulFZ5FRETclMJPHZjNJrq1D3N1GSIiIlIHuuwlIiIiHkXhR0RERDyKwo+IiIh4FIUfERER8SgKPyIiIuJRFH5ERETEoyj8iIiIiEdR+BERERGPovAjIiIiHsVkGIbh6iIaI8MwsFqb3tR4eZmxWKyuLsOlPH0OPH38oDnw9PGD5qCpjt9sNmEynbndlMKPiIiIeBRd9hIRERGPovAjIiIiHkXhR0RERDyKwo+IiIh4FIUfERER8SgKPyIiIuJRFH5ERETEoyj8iIiIiEdR+BERERGPovAjIiIiHkXhR0RERDyKwo+IiIh4FIUfERER8SgKPx7ioYce4t577z3jfi+99BJxcXFV/mkK7J2Dw4cPc+ONNzJgwACGDx/O888/j8ViaYAKna+4uJhHH32UYcOG0b9/f/72t7+RmZlZ63vc/TtgtVp54YUXOO+88+jXrx+zZ88mJSWlxv2zsrL429/+Rnx8PIMHD+bRRx+lsLCwASt2LkfHv3bt2mp/vw8fPtyAVdefl19+mZkzZ9a6T1P7DpzKnvE39e9AdbxdXYDUL6vVyvPPP8+qVauYOHHiGfdPSkriiiuu4K677mqA6hqGI3NQWlrKddddR4cOHVi5ciWHDh3igQcewGw285e//KWBKnaeRx55hC1btvDiiy/i6+vLww8/zF/+8heWLl1a43vc/TuwcOFCli9fzlNPPUVMTAzPPvss119/PevWrcPX17fK/n/5y18oLCxk8eLF5Obm8sADD1BQUMDTTz/tgurPnqPjT0pKYvDgwfzf//1fpe3h4eENVXK9WbZsGc8//zyDBg2qdb+m9h2oYO/4m/J3oEaGNFn79u0zpk6dagwdOtQYOXKkcc8995zxPePHjzfefPPN+i+ugTg6B+vWrTN69eplZGdn27atXLnSGDBggFFcXFzf5TrVsWPHjG7duhlffvmlbdv+/fuNrl27Gj/++GON73Pn70BxcbHRv39/Y9myZbZtOTk5Rp8+fYx169ZV2f/HH380unbtauzbt8+27X//+58RFxdnHDt2rEFqdiZHx28YhnH99dcbjz/+eEOV2CCOHTtm3HjjjUa/fv2McePGGTNmzKhx36b2HTAMx8ZvGE3zO3AmuuzVhG3atInOnTvz0Ucf0aZNmzPuX1JSwm+//UanTp0aoLqG4egcbNmyhZ49exISEmLbNnToUE6cOMEvv/xSn6U63datW4Hy+it07NiRFi1a8MMPP1T7Hnf/DuzZs4f8/HyGDRtm2xYcHEyPHj2qHfOWLVuIioqic+fOtm2DBw/GZDLZ5s+dODp+KP9b/6njbwp27dqFj48Pa9eupW/fvrXu29S+A+DY+KFpfgfORJe9mrDp06c7tP++ffuwWCx88sknPPHEExQXFxMfH89dd91FdHR0PVVZvxydg2PHjhETE1NpW8XYjx49atcfJI3F8ePHCQsLw8/Pr9L26Ohojh07Vu173P07UDGuli1bVtpe05iPHz9eZV9fX19CQ0M5evRo/RVaTxwdf05ODsePH2fLli0sX76crKws+vTpw1133UXHjh0bpOb6MGrUKEaNGmXXvk3tOwCOjb+pfgfOROHHTR0+fJjRo0fX+PrGjRsdvl6bnJwMgL+/P//617/IyMjg//7v/7j66qv54IMPaNas2VnV7Gz1MQdFRUUEBwdX2lYRHoqLix0vsh6dafy33XZbtfd4+Pn51TgWd/sOnK7iJtXTx+3n50dOTk61+zs6R42Zo+Pfu3cvAIZh8M9//pOioiJeeuklEhMTWbduHZGRkfVftIs1te+Aozz1O6Dw46ZatGjB+vXra3z91Ms29powYQIjRoyoFBhiY2MZMWIEn3/+ORdffHGdaq0v9TEHzZo1o6SkpNK2ij8Amzdv7vDx6tOZxv/VV19VGQuUj8ff37/a97jbd+B0FeGspKSkUlCraczV/X5X7N/Yfr/t4ej4Bw0axMaNGwkLC8NkMgEwf/58Ro4cyfvvv88NN9zQMIW7UFP7DjjKU78DCj9uysfHp16u0Z5+piQ6OprQ0NAaL5O4Un3MQUxMjO3sR4XU1FSgPGw0Jmcaf1JSEtnZ2ZSUlFT6m21qamqtY3Gn78DpKi5fpKam0q5dO9v21NTUah/Xj4mJYcOGDZW2lZSUkJ2d7RaX+U7n6Pih6u+3v78/bdq04fjx4/VXaCPS1L4DdeGJ3wHd8Cw2zz33HGPHjsUwDNu2w4cPk5WVRZcuXVxYWcOJj49n9+7dnDhxwrZt06ZNBAQE0K1bNxdW5riBAwditVor3bR54MABjh8/Tnx8fLXvcffvQLdu3QgMDGTz5s22bbm5uezevbvaMcfHx3Ps2DEOHjxo2/b9998D5fPnbhwd/6pVqxgyZAgFBQW2bSdOnOC3335zi99vZ2hq3wFHeep3QOHHg5WUlJCWlmY75XvhhRfy+++/88gjj3DgwAF++OEHbr31VgYMGMB5553n4mrrx+lzMGbMGKKiorj99tvZs2cPGzZs4P/+7/+49tprq70voDFr0aIFl1xyCQ8++CCbN29m+/bt/PWvf2Xw4MH069cPaHrfAV9fX2bMmMHcuXP57LPP2LNnD3fccQcxMTFcdNFFWCwW0tLSKCoqAqBv374MGDCAO+64g+3bt7Np0yYeeughJkyY0OjO9NnD0fGPGDECq9XK3Xffzd69e9mxYwe33nor4eHhTJo0ycWjqR9N/TtwJvoOlFP48WDbtm1j+PDhbNu2DYBevXrx6quvkpSUxKRJk7jlllvo3r07ixYtsl0LbmpOnwM/Pz9ee+01rFYrV111FY8++iiJiYncfPPNLq60bh5//HGGDRvGLbfcwnXXXUenTp144YUXbK83xe/AX/7yFyZPnsyDDz5IQkICXl5evP766/j4+HD06FGGDx9uu1fKZDIxf/582rRpw5/+9Cduv/12RowYwSOPPOLaQZwFR8bfsmVLFi9eTEFBAQkJCVxzzTUEBQXx9ttvV3lKsKnwhO9AbfQdKGcyTj2/LSIiItLE6cyPiIiIeBSFHxEREfEoCj8iIiLiURR+RERExKMo/IiIiIhHUfgRERERj6LwIyIiIh5F4UdEGh0tP2Y/zZWI4xR+RNzUvffeS1xcXK3/zJw5E4CZM2fa/r2xW7hwIa+//rrt5xdffLHGppx19f777xMXF8fhw4fPuO+XX37JjTfeyPDhw+nbty9jx47lqaee4ujRo06tyVElJSU8+eSTrFu3zrbt3nvvZdSoUbaf4+LiePHFF11Rnkijpq7uIm7q5ptvZtq0abafFy5cyO7du5k/f75tW2BgoCtKOyv/+te/uOWWW2w/T5kyxWV9xR555BFWrFjBpZdeysMPP0xQUBD79u1jyZIlvP/++7zwwgsMHTrUJbWlpqby1ltv8c9//tO27eabb+bqq692ST0i7kThR8RNtWvXjnbt2tl+Dg8Px9fX19a0tKmIiYkhJiamwT93xYoVrFixgieeeILJkyfbtg8dOpQJEyYwe/Zsbr/9dj766CMiIyMbvL7qnPp9EJGa6bKXiIcwDINXX32VkSNH0qdPH6ZOncr27dsr7ZOcnMyNN97IgAEDGDBgAHPmzCElJaXSPqmpqdx3332cf/759OnTh8mTJ/PZZ59V2icuLo758+czadIk+vTpYzsbdeTIEVtn+b59+/KnP/2J3bt3V3ofwPz5823/Xt1lrw8++ICJEyfSt29fRo4cybx582yd6QE2bNhAYmIi/fv3p1evXowbN45ly5Y5NFeLFi1i+PDhlYJPhcDAQP7xj3+QlZVlO+7hw4eJi4vj/fffr7Tv6ZeiLBYLr7zyCpdeeil9+vShX79+TJs2jU2bNtn2efHFF7nwwgv58ssvueyyy+jVqxdjx47lgw8+sH3W6NGjAbjvvvtsxz/9s06XnZ3NQw89xDnnnEPv3r256qqr2LhxY6V9vv32W6666ir69+9PfHw8N910E7/++qvdcyfiDhR+RDzE1q1b+fTTT/n73//Os88+S2pqKjfddBNlZWUAHDhwgGnTppGRkcHTTz/NE088QUpKCgkJCWRkZACQnp7O5MmT2bJlC3fccQcvvvgirVu3Zs6cOaxdu7bS5y1atIjLLruMF154gbFjx5KZmcm0adPYtWsXf//735k3bx5Wq5Xp06fb/ue6atUqACZPnmz799MtW7aMe+65h549ezJ//nxuuOEGlixZwj/+8Q+g/B6dOXPm0LNnTxYuXMiLL75I27Zteeyxx/j555/tmqtdu3Zx7NgxxowZU+M+nTt3plu3bmzYsMGuY1aYO3cuCxcuZOrUqbz22ms8/vjjZGdnc9ttt1FYWGjbLy0tjccee4yrr76aV155hTZt2nDPPffw66+/Eh0dbQuUN910U6VLnTUpLi7mT3/6E5999hl33HEH8+fPJyYmhuuvv94WgFJSUrj55pvp1asXL730Ek888QQHDhzghhtuwGq1OjROkcZMl71EPISvry+vvPIKoaGhAOTm5vLggw+yb98+unXrxvz58/H392fx4sW2e4WGDRvGmDFjeO2117jnnnt48803yczM5JNPPqF169YAnH/++VxzzTU888wzXHrppZjN5X+nGjRoELNmzbJ9/nPPPUd2djYrVqywvXfEiBFcfPHF/Otf/+KFF16wXbKLiYmp9vKd1WplwYIFjBkzxhZ2AAoLC/n4448pLS1l3759TJw4kQceeMD2ev/+/RkyZAibN2+mb9++Z5yrI0eOANjqrEn79u355ptvzni8U6WmpnLHHXdUugHdz8+PW2+9laSkJNu4CwsLeeKJJxg2bBgAHTp04IILLuCrr77i2muvpXv37kD5pa4ePXqc8XM//PBD9uzZw+rVq21zMGLECGbOnMncuXN577332L59O0VFRdx44420aNECKP+9+OyzzygoKHDLe8hEqqPwI+IhunTpYgs+AG3atAEgLy8PgE2bNjF48GCaNWtmOxsUGBjIoEGD+O677wD4/vvv6d+/f5VQcPnll3Pfffexf/9+unTpAmD7n3OFjRs30r17d1q0aGE7vtlsZsSIEVXOGtXkwIEDZGRkcOGFF1baft1113HdddcBcP311wOQn5/PgQMHOHToEDt27ACodGnMGUwmk8NnRObNmwdAZmYm+/fv5+DBg3zxxRfV1ndqAKy476mgoKBOtW7cuJGoqCh69uxpm3+ACy64gGeeeYacnBz69u2Ln58fkydPZty4cYwYMYIhQ4bQp0+fOn2mSGOl8CPiIZo3b17p54ozNBX/887Ozmb9+vWsX7++ynvDw8MByMnJoW3btlVer7jhNzc3t8bPy87O5uDBg/Ts2bPa+goLC/H39691DNnZ2QBERETUuE9mZiYPP/wwGzZswGQy0b59ewYNGgTYvyZOq1atAM74KHxKSoptX3vt2LGDRx99lB07duDv70+XLl1sxzi9vlPno+L3q67r+mRnZ5OWllbj/KelpdGlSxeWLl3KK6+8wrvvvsvbb79NcHAwiYmJ3H777ZhMpjp9tkhjo/AjIgAEBQVxzjnnVLpUVcHbu/yPipCQENLS0qq8XrEtLCys1uMPHjyYu+++u9rXfX19z1hjcHAwUB5wTpWVlcXu3bvp378/d955J/v372fx4sX0798fX19fCgsLWb169RmPX6Fnz57ExMTw3//+l8TERNv248ePYzabiYqKIiUlhT179tgeLa8IBhaLpdKxTj1Tc+LECa6//nri4uL4+OOP6dSpE2azma+++opPPvnE7vrqIigoiA4dOjB37txqX684E1hxg3pJSQlbt25l1apVLFq0iG7dujF+/Ph6rVGkoeiGZxEBYPDgwezbt4/u3bvTu3dvevfuTa9evVi8eDGffvopAPHx8Wzbto3ff/+90nvXrl1LVFQU7du3r/X4Bw4coGPHjrbj9+7dmw8//JB3330XLy8v4I8zHNXp1KkTYWFhtstEFT788ENuuOEGSktL2bp1KxdddBFDhgyxBaqvv/4awO5LVCaTiVtuuYWNGzdWCk0ffvghI0eO5Omnn+b++++nWbNmtrBYcT/M8ePHbfuXlpZWeqJu//79ZGdnc/XVV9OlSxfbWB2tD7DNl70GDx7M0aNHiYiIqDT/3377La+99hpeXl4sXryYCy64gJKSEnx9fRk2bBiPP/448Md9UCJNgc78iAjwx6KJN954IwkJCfj5+bFq1So2bNjACy+8AMCsWbNYu3Yt11xzDbfccguhoaF88MEHbNq0iSeffLLW4HLNNdfw4Ycfcs0113DttdcSFhbG+vXrWb16Nffdd59tv+DgYH788Ud++OEH2+WqCl5eXtx666089thjREREMGrUKA4cOMALL7zA9OnTCQkJoU+fPqxbt8529ubHH3/klVdewWQyVXqa6kymTJlCcnIyDz30EJs3b2b8+PH079+f8ePH88YbbwBw66232m4MDgkJoX///ixZsoT27dsTEhLC22+/TVFRke0SYMeOHQkMDGTRokV4e3vj7e3NJ598wrvvvgvgUH1BQUFA+b08nTt3PuON3JMmTWLp0qXMmjWLP//5z7Rs2ZLvvvuOV199lRkzZuDj48PQoUOZO3cuc+bMYcaMGXh5ebFy5Up8fX254IIL7K5NpLFT+BERALp168ayZct47rnnuPvuuzEMg65du7JgwQLbmjJRUVGsWLGCefPm8Y9//IPS0lK6devGwoULbfvUpEWLFqxcuZJ58+bxyCOPUFxcTIcOHaosIvjnP/+ZhQsXMnv27GrvP5o+fTrNmzfn9ddfZ9WqVcTExDB79mxmz54NwFNPPcXjjz9uO2PRoUMHHn30UdauXcuWLVscmpMHHniA8847j2XLlvHwww+Tl5dHixYtSExMpFmzZixatIg9e/bwxBNPEBISYvvsBx98kMDAQCZPnszAgQN55513gPLAsnDhQp555hluu+02AgIC6N69O0uXLmX27Nls2bKl1nV6ThUYGMisWbNYtWoVX331Fd9++22t+zdv3pxly5Yxb948nn32WfLy8mjdujV/+9vfuPbaa4Hy78CiRYtYsGABf/3rX7FYLPTq1Ys33niDTp06OTR3Io2ZyVBXPBGROtm3bx/vv/8+d955Z61nvUSkcVH4EREREY+iv6qIiIiIR1H4EREREY+i8CMiIiIeReFHREREPIrCj4iIiHgUhR8RERHxKAo/IiIi4lEUfkRERMSjKPyIiIiIR1H4EREREY/y/+2Ys/H/VorEAAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 分位图\n",
    "fig = sm.qqplot(resid, line=\"s\")"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:41:33.478067Z",
     "end_time": "2024-04-16T20:41:33.689335Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "outputs": [
    {
     "data": {
      "text/plain": "3    -17.200217\n21   -14.501481\n12    -9.710106\n4     -9.703971\n10    -7.664418\ndtype: float64"
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 递增排列\n",
    "resid_sort = resid.sort_values()\n",
    "resid_sort.head()"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:41:45.491079Z",
     "end_time": "2024-04-16T20:41:45.573265Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "outputs": [
    {
     "data": {
      "text/plain": "0.032"
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 最小的数据所在位置\n",
    "1 / 31"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:41:56.057509Z",
     "end_time": "2024-04-16T20:41:56.088177Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "outputs": [
    {
     "data": {
      "text/plain": "array([0.032, 0.065, 0.097, 0.129, 0.161, 0.194, 0.226, 0.258, 0.29 ,\n       0.323, 0.355, 0.387, 0.419, 0.452, 0.484, 0.516, 0.548, 0.581,\n       0.613, 0.645, 0.677, 0.71 , 0.742, 0.774, 0.806, 0.839, 0.871,\n       0.903, 0.935, 0.968])"
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 按样本容量变换为 0 到 1 的范围, 得到理论累积概率\n",
    "nobs = len(resid_sort)\n",
    "cdf = np.arange(1, nobs + 1) / (nobs + 1)\n",
    "cdf"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:42:09.824954Z",
     "end_time": "2024-04-16T20:42:09.862387Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "outputs": [
    {
     "data": {
      "text/plain": "array([-1.849, -1.518, -1.3  , -1.131, -0.989, -0.865, -0.753, -0.649,\n       -0.552, -0.46 , -0.372, -0.287, -0.204, -0.122, -0.04 ,  0.04 ,\n        0.122,  0.204,  0.287,  0.372,  0.46 ,  0.552,  0.649,  0.753,\n        0.865,  0.989,  1.131,  1.3  ,  1.518,  1.849])"
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 累积概率对应的百分位数\n",
    "ppf = stats.norm.ppf(cdf)\n",
    "ppf"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:42:27.866334Z",
     "end_time": "2024-04-16T20:42:27.883191Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "outputs": [
    {
     "data": {
      "text/plain": "[<matplotlib.lines.Line2D at 0x22469fd6830>]"
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 参考: 横轴为理论分位数, 纵轴为已排序的实际数据, 绘出的散点图就是分位图\n",
    "fig = sm.qqplot(resid, line=\"s\")\n",
    "plt.plot(stats.norm.ppf(cdf), resid_sort, \"o\", color=\"black\")"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:42:45.818241Z",
     "end_time": "2024-04-16T20:42:45.991688Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 19. 根据 summary 函数的输出分析残差"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "outputs": [
    {
     "data": {
      "text/plain": "<class 'statsmodels.iolib.summary.Summary'>\n\"\"\"\n                            OLS Regression Results                            \n==============================================================================\nDep. Variable:                   beer   R-squared:                       0.504\nModel:                            OLS   Adj. R-squared:                  0.486\nMethod:                 Least Squares   F-statistic:                     28.45\nDate:                Tue, 16 Apr 2024   Prob (F-statistic):           1.11e-05\nTime:                        20:43:11   Log-Likelihood:                -102.45\nNo. Observations:                  30   AIC:                             208.9\nDf Residuals:                      28   BIC:                             211.7\nDf Model:                           1                                         \nCovariance Type:            nonrobust                                         \n===============================================================================\n                  coef    std err          t      P>|t|      [0.025      0.975]\n-------------------------------------------------------------------------------\nIntercept      34.6102      3.235     10.699      0.000      27.984      41.237\ntemperature     0.7654      0.144      5.334      0.000       0.471       1.059\n==============================================================================\nOmnibus:                        0.587   Durbin-Watson:                   1.960\nProb(Omnibus):                  0.746   Jarque-Bera (JB):                0.290\nSkew:                          -0.240   Prob(JB):                        0.865\nKurtosis:                       2.951   Cond. No.                         52.5\n==============================================================================\n\nNotes:\n[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n\"\"\"",
      "text/html": "<table class=\"simpletable\">\n<caption>OLS Regression Results</caption>\n<tr>\n  <th>Dep. Variable:</th>          <td>beer</td>       <th>  R-squared:         </th> <td>   0.504</td>\n</tr>\n<tr>\n  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>   0.486</td>\n</tr>\n<tr>\n  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>   28.45</td>\n</tr>\n<tr>\n  <th>Date:</th>             <td>Tue, 16 Apr 2024</td> <th>  Prob (F-statistic):</th> <td>1.11e-05</td>\n</tr>\n<tr>\n  <th>Time:</th>                 <td>20:43:11</td>     <th>  Log-Likelihood:    </th> <td> -102.45</td>\n</tr>\n<tr>\n  <th>No. Observations:</th>      <td>    30</td>      <th>  AIC:               </th> <td>   208.9</td>\n</tr>\n<tr>\n  <th>Df Residuals:</th>          <td>    28</td>      <th>  BIC:               </th> <td>   211.7</td>\n</tr>\n<tr>\n  <th>Df Model:</th>              <td>     1</td>      <th>                     </th>     <td> </td>   \n</tr>\n<tr>\n  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>   \n</tr>\n</table>\n<table class=\"simpletable\">\n<tr>\n       <td></td>          <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n</tr>\n<tr>\n  <th>Intercept</th>   <td>   34.6102</td> <td>    3.235</td> <td>   10.699</td> <td> 0.000</td> <td>   27.984</td> <td>   41.237</td>\n</tr>\n<tr>\n  <th>temperature</th> <td>    0.7654</td> <td>    0.144</td> <td>    5.334</td> <td> 0.000</td> <td>    0.471</td> <td>    1.059</td>\n</tr>\n</table>\n<table class=\"simpletable\">\n<tr>\n  <th>Omnibus:</th>       <td> 0.587</td> <th>  Durbin-Watson:     </th> <td>   1.960</td>\n</tr>\n<tr>\n  <th>Prob(Omnibus):</th> <td> 0.746</td> <th>  Jarque-Bera (JB):  </th> <td>   0.290</td>\n</tr>\n<tr>\n  <th>Skew:</th>          <td>-0.240</td> <th>  Prob(JB):          </th> <td>   0.865</td>\n</tr>\n<tr>\n  <th>Kurtosis:</th>      <td> 2.951</td> <th>  Cond. No.          </th> <td>    52.5</td>\n</tr>\n</table><br/><br/>Notes:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.",
      "text/latex": "\\begin{center}\n\\begin{tabular}{lclc}\n\\toprule\n\\textbf{Dep. Variable:}    &       beer       & \\textbf{  R-squared:         } &     0.504   \\\\\n\\textbf{Model:}            &       OLS        & \\textbf{  Adj. R-squared:    } &     0.486   \\\\\n\\textbf{Method:}           &  Least Squares   & \\textbf{  F-statistic:       } &     28.45   \\\\\n\\textbf{Date:}             & Tue, 16 Apr 2024 & \\textbf{  Prob (F-statistic):} &  1.11e-05   \\\\\n\\textbf{Time:}             &     20:43:11     & \\textbf{  Log-Likelihood:    } &   -102.45   \\\\\n\\textbf{No. Observations:} &          30      & \\textbf{  AIC:               } &     208.9   \\\\\n\\textbf{Df Residuals:}     &          28      & \\textbf{  BIC:               } &     211.7   \\\\\n\\textbf{Df Model:}         &           1      & \\textbf{                     } &             \\\\\n\\textbf{Covariance Type:}  &    nonrobust     & \\textbf{                     } &             \\\\\n\\bottomrule\n\\end{tabular}\n\\begin{tabular}{lcccccc}\n                     & \\textbf{coef} & \\textbf{std err} & \\textbf{t} & \\textbf{P$> |$t$|$} & \\textbf{[0.025} & \\textbf{0.975]}  \\\\\n\\midrule\n\\textbf{Intercept}   &      34.6102  &        3.235     &    10.699  &         0.000        &       27.984    &       41.237     \\\\\n\\textbf{temperature} &       0.7654  &        0.144     &     5.334  &         0.000        &        0.471    &        1.059     \\\\\n\\bottomrule\n\\end{tabular}\n\\begin{tabular}{lclc}\n\\textbf{Omnibus:}       &  0.587 & \\textbf{  Durbin-Watson:     } &    1.960  \\\\\n\\textbf{Prob(Omnibus):} &  0.746 & \\textbf{  Jarque-Bera (JB):  } &    0.290  \\\\\n\\textbf{Skew:}          & -0.240 & \\textbf{  Prob(JB):          } &    0.865  \\\\\n\\textbf{Kurtosis:}      &  2.951 & \\textbf{  Cond. No.          } &     52.5  \\\\\n\\bottomrule\n\\end{tabular}\n%\\caption{OLS Regression Results}\n\\end{center}\n\nNotes: \\newline\n [1] Standard Errors assume that the covariance matrix of the errors is correctly specified."
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 打印估计的结果\n",
    "lm_model.summary()"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-04-16T20:43:11.425673Z",
     "end_time": "2024-04-16T20:43:11.515553Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
